作业帮 > 综合 > 作业

将AL的高4位和BL的低四位互换

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 19:32:25
将AL的高4位和BL的低四位互换
当然可以实现了 可以使用逻辑运算指令的AND逻辑与指令和OR逻辑或指令来实现
PUSH AX ;保存AL内容到堆栈
AND AL,0FH ;AL屏蔽掉高4位 保留低4位
PUSH BX ;保存BL内容到堆栈
MOV CL,4 ;设置BL循环左移的位数 即4位
ROL BL,CL ;BL循环左移4位(即BL中的高4位于低4位进行了互换)
AND BL,0F0H ;BL保留高4位 屏蔽掉低4位
OR AL,BL ;合并 在AL中高4位是原BL中的低4位 低4 位不变

POP BX ;从堆栈中回复BL的内容
AND BL,0F0H ;BL保留高4位 屏蔽掉低4位
POP CX ;从堆栈中回复原AL的内容 到CL中
MOV AH,CL ;将CL中原AL的内容送给AH
MOV CL,4 ;设置AH循环左移的位数 即4位
ROL AH,CL ;AH循环左移4位(即AH中的高4位和低4位进行了互换)
AND AH,0FH ;屏蔽掉高4位 保留低4位(实际是原AL中的高4位)
OR BL,AH ;合并 BL内容为高4位不变 低4位为(原AL中的高4位内容)

比原先的要麻烦许多 主要是互换内容 AL和BL内容都不能丢失
请替俺选择(满意回答)吧