1.and指令:逻辑与指令,按位进行与运算,即:1 and 1=1,0 and 0=0, 1 and 0=0
2.or指令:逻辑或指令,按位进行或运算,即:1 or 0=0,1 or 1=1,0 or 0=0.
3.文本编辑过程:按下键盘的"A"键,这个按键的信息会被送入计算机,计算机用ASCII码的规则对其进行编码,将其转化为61H存储在内存的指定空间中;文本编辑软件从内存中取出61H,将其送到显卡上的显存中,工作在文本模式下的显卡,用ASCII码的规则解释显存中的内容,61H被当作字符"a",显卡驱动显示器
4.db :define byte 定义字节
5.小写字母的ASCII码值比大写字母的ASCII码值大20H
6.[bx+idata]表示一个内存单元,它的偏移地址为(bx)+idata,即bx中的数值加上idata.
7.(ax)=((ds)*16+(bx)+200) 该指令可以写成: ①.mov ax,[200+bx] ②. mov ax,200[bx] ③.mov ax,[bx].200
8.SI和DI是8086CPU中和bx功能相近的,但是SI和DI不能够分成两个8位寄存器
9.[bx+si]和[bx+di]的含义相似,它的偏移地址为(bx)+(si),可以写成mov ax,[bx][si]]
10.mov ax,[bx+si+idata]含义如下:将一个内存单元的内容送入ax,这个内存单元的长度为2个字节(字单元),存放一个字,偏移地址为bx中的数值加上si中的数值再加上idata,段地址在ds中
11.(ax)=((ds)*16+(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
12.小结:[idata]用一个变量来表示地址,可用于直接定位一个内存单元.
[bx]用一个变量表示内存地址,可用于间接定位一个内存单元
[bx+idata]用一个变量和常量表示地址,可在一个起始地址的基础上用变量间接定位一个内存单元
[bx+si]用两个变量表示地址
[bx+si+idata]用两个变量和一个常量表示地址
13.一般来说,在需要暂存数据的时候,我们都应该使用栈.
14.BX SI DI BP,在8086CPU中只有这4个寄存器可以用在"[…]"中进行内存单元的寻址.在[…]中,这4个寄存器可以单个出现,或只能4种组合出现:bx和si,bx和di,bp和si,bp和di.
15.只要在[…]中使用bp,而指令中没有显性地给出段地址,段地址就默认在SS中
16.在机器指令这一层,它并不关心数据的值是多少,而关心指令执行前一刻,它将要处理的数据所在的位置,指令在执行前,所要处理的数据可以在三个地方:①.CPU内部 ②.内存 ③.端口
17.汇编语言中用三个概念来表达数据的位置: ①.立即数(idata)
对于直接包含在机器指令中的数据(执行前在CPU的指令缓冲器中),在汇编语言中称为:立即数(idata),在汇编语言中给出
②.寄存器
指令要处理的数据在寄存器当中,在汇编指令中可给出相应的寄存器名.
③.段地址和偏移地址
指令要处理的数据在内存中,在汇编指令可用[x]的格式给出EA,SA在每个段寄存器中.存放段地址的寄存器可以是默认的.
mov ax, [0]/mov ax,[di]/mov ax,[bx]/mov ax,[bx+si]这些指令在,段地址默认在ds中.
mov ax.[bp]/mov ax,[bp+si]这些是在默认在ss中
18.8086CPU的指令可以处理两种尺寸的数据,byte和word,所以在机器指令中要指明指令进行的是字操作还是字节操作
共有两种方法来处理: ①.通过寄存器名指明要处理的数据的尺寸,比如 mov ax,...这是进行字操作,mov al,...这是进行字节操作
②.在没有寄存器名存在的情况下,用操作符"X ptr"指明内存单元的长度,
word ptr指明了指令访问的内存单元是一个字单元
byte ptr指明了指令访问的内存单元是一个字节单元
19.push指令只进行字操作.
20.div:除法指令:
除数有8位和16位两种,被除数默认在AX或AX和DX当中存放,当被除数为16位时,默认在AX中存放,如果除数为32位,则被除数在DX和AX中存放,DX存放高16位,而AX存放低16位.
结果:如果除数为8位,则AL存储除法操作的商,AH存放除法操作的余数,如果除数为16位,则AX存储除法操作的商,DX存放除法操作的余数.
21.db:定义字节型数据 dw:定义字型数据 dd:定义双字型数据
22.dup:也是有编译器识别处理的符号,例如 dp 3 dup (0)===定义了三个字节,它们的值都为0