1.[BX]指令功能:bx中存放的数据作为一个偏移地址,段地址在ds中,经常用[bx]表示内存单元。
例如:mov ax,[bx]就表示为(ax)=((ds)*16+(bx)).
2.描述性符号():表示一个寄存器或内存单元的地址。
例如:(ax)就表示ax中的内容。
3.loop指令:循环指令。
格式:loop 标号
CPU执行loop指令时的操作:(1)(cx)=(cx)-1.(cx中存放循环的次数).
(2)判断cx的值,不为零,则转至标号处执行,如果为零则向下执行。
4.在汇编源程序中,数据是不可以以字母开头的。
5.g命令:跳转指令。
用法:g 偏移地址。
6.p命令:循环跳转指令。
用法:在遇到loop指令时,用p命令执行,即可完成循环的过程。
7.dw:定义字数据。
db:定义字节数据。
dd:定义双字数据。
8.汇编源程序中指明程序的入口:用一个标号指明。如:start。
9.用多个段来存放数据、代码和段:对于不同的段要有不同的段名。
10.一个段中的段地址可由段名代表。
例如:mov ax,data表示:将data这个段的段地址传送给ax这个寄存器。
11.要明白在汇编源程序中对不同段的定义和划分仅仅是我们认为规定的,CPU是不认同这种划分的。
12.and指令:逻辑与运算。
13.or指令:逻辑或运算。
14.ASCII编码:对传送到计算机的信息的编码。
15.在汇编程序中用'......'的方式指明数据是以字符的形式给出的,编译器会将它们转化为相应的ASCII码。
16.[bx+idata]:表示一个内存单元,它的偏移地址是(bx)+idata。
17.SI和DI:8086CPU中和bx功能相近的寄存器,但是si和di不可以划分成两个8位寄存器来使用。
18.表示内存单元的几种方式:
[idata]
[bx]
[si]
[di]
[bx+idata]
[si+idata]
[di+idata]
[bx+si+idata]
[bx+di+idata]
19.寄存器(reg):ax,ah,al,bx.bh,bl,cx,ch,cl,dx,dh,dl,sp,bp,si,di
段寄存器:ss,cs,es,ds
20.表示内存单元的寻址:bx,bp,si,di
bx与bp可以与si,di组合使用,其他不可以。
bp的段地址默认在ss中。
21.在表示CPU处理数据的长度时有两种方法:
(1)寄存器指明
(2)word ptr 和 byte ptr指明。
22.div除法指令:
(1)除数8位:放在一个内存单元或者在一个寄存器里。
被除数:放在ax中。
商:放在al中
余数:放在ah中。
(2)除数16位:放在一个内存单元中或者在一个寄存器里。
被除数32位:低16位在ax中,高16位在dx中。
商:ax中
余数:dx中
23.dup指令:用于数据的重复。
db(或dw或dd) 重复的次数 dup(重复的数据)