and和or指令
and逻辑与指令
作用:通过该指令可以将操作对象的相应位设为0,其他位不变
or 逻辑或指令
作用:通过该指令可以将操作对象的相应位设为1,其他位不变
[bx+idata] [bx+si] [bx+di]
si,di 在8086CPU中和BX功能相近的寄存器
si和di不能分成两个8位寄存器来使用!
等效写法
两个变量表示地址:[bx+si] ↔ [si+bx], [bx][si], [si][bx]
一个变量一个常量表示地址:[bx+idata] ↔ [bx]idata, idata[bx]
两个变量一个常量表示地址:[bx+si+idata] ↔ [bx][si][idata], [bx][si+idata], idata[bx][si], idata[bx+si]
注意多种寻址方式的应用技巧。
大小写转换问题
字母大小写的ASCII码
会发现只有第三位不同,可以利用or或and指令来修改
变为大写字母 and al,11011111b
变为小写字母 or al,00100000b
不同寻址方式的灵活运用
注意:
1.在debug中,a命令不支持诸如‘a‘这样的写法,e命令支持。
2.注意二重循环
外重循环和内层循环对于cx的使用,解决方法(1)将外层循环cx的值保存在dx中
(2)暂存数据时利用栈,push,pop
3 等价关系
dw 0,0,0,0,0,0,0,0↔dw 8 dup(0)
mov al,[bx+3]
and al,11011111 ↔ and byte ptr ds:[bx+3],11011111b
mov [bx+3],al
原文地址:https://www.cnblogs.com/zq-dmhy/p/10023519.html
时间: 2024-10-10 22:14:16