第七章 更灵活的定位内存地址的方法 知识梳理

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

猜你喜欢

转载自www.cnblogs.com/zq-dmhy/p/10023519.html