1.and指令:逻辑与指令,按位进行与运算。

 通过该指令可将操作对象的相应位设为0,其他位不变。

2.or指令:逻辑或指令,按位进行或运算。

 通过该指令可将操作对象的相应位设为1,其他位不变。

3.可以在汇编程序中,用‘。。。’的方式指明数据是以字符的形式给出的,编译器将它们转化为相对应的ASCII码。

4.ASCII形式:大写字母+20H=小写字母

 二进制形式:大写字母第五位为0,小写字母第五位为1。

5.si和di是8086是8086CPU中和bx功能相近的寄存器,si和di不能够分成两个8位寄存器来使用。

6.(1)[idata]用一个常量来表示地址,可用于直接定位一个内存单元。

 (2)[bx]用一个变量来表示内存地址,可用于间接定位一个内存单元。

 (3)[bx+idata]用一个变量和常量表示地址,可在一个起始地址的基础上用变量间接定位一个内存单元。

 (4)[bx+si]用两个变量表示地址。

 (5)[bx+si+idata]用两个变量和一个常量表示地址。

7.在使用多次循环的时候,我们应该在每次开始内层循环的时候,将外层循环的cx中的数值保存起来,在执行外层循环的loop指令前,再恢复外层循环的cx数值,可以用寄存器来临时保存cx中的数值。(实例见书P156)但寄存器的数量有限,每个程序中可使用的寄存器都不一样。

显然,不能选择寄存器,我们可以考虑将需要暂存的数据放到内存单元中,需要使用的时候再从内存单元中恢复。(实例见书P157)但用内存单元来保存数据,作法太过麻烦,如果需要保存多个数据的时候,必须记住数据放到了哪个单元中,这样程序容易混乱。

一般来说,在需要暂存数据的时候,我们都应该使用栈。(P158)