王爽《汇编语言》第三版 第七章 更灵活定位内存地址
7.1 and和or指令
and 指令:逻辑与指令,按位进行与运算。
or 指令:逻辑或指令,按位进行或运算。
7.2 关于ASCII码
世界上有很多编码方案,有种方案叫做ASCII编码,是在计算机系统中通常被采用的。
7.3 以字符形式给出的数据
“db ‘unIX’ ” 相当于“db 75H,6EH,49H,58H”, “u”、 “n”、 “I”、 “X”的ASCII码分别为75H、6EH、49H、58H;
“mov al,’a’”相当于“mov al,61H”,”a”的ASCII码为61H;
7.4 大小写转换的问题
一个字母,我们不管它原来是大写还是小写:我们将它的第5位置0,它就必将变为大写字母;将它的第5 位置1,它就必将变为小写字母。
7.5 [bx+idata]
[bx+idata]表示一个内存单元,它的偏移地址为(bx)+idata(bx中的数值加上idata)。
7.6 用[bx+idata]的方式进行数组的处理
7.7 SI和DI
SI和DI是8086CPU中和bx功能相近的寄存器,但是SI和DI不能够分成两个8 位寄存器来使用。
7.8 [bx+si]和[bx+di]
[bx+si]表示一个内存单元,它的偏移地址为(bx)+(si)(即bx中的数值加上si中的数值)。
7.9 [bx+si+idata]和[bx+di+idata]
[bx+si+idata]和[bx+di+idata]的含义相似。
指令mov ax,[bx+si+idata]也可以写成如下格式(常用):
mov ax,[bx+200+si]
mov ax,[200+bx+si]
mov ax,200[bx][si]
mov ax,[bx].200[si]
mov ax,[bx][si].200
7.10 不同的寻址方式的灵活应用
我们应该在每次开始内层循环的时候,将外层循环的cx中的数值保存起来,在执行外层循环的loop指令前,再恢复外层循环的cx数值。
参考资料:《小甲鱼汇编零基础入门》
《汇编语言》第三版