(1)mov指令
mov 寄存器 ,数据 如:mov ax ,8
mov 寄存器,寄存器 如:mov ax,bx
mov 寄存器,内存单元 如:mov ax,[0]
mov 内存单元,寄存器 如:mov [0],ax
mov 段寄存器,寄存器 如:mov ds,ax
(2)add指令
add 寄存器,数据 如:add ax,8
add 寄存器,寄存器 如:add ax,bx
add 寄存器,内存单元 如:add ax,[0]
add 内存单元,寄存器 如:add [0],ax
(3)sub指令
sub 寄存器,数据 如:sub ax,9
sub 寄存器,寄存器 如 sub:ax,bx
sub 寄存器 ,内存单元 如:sub ax,[0]
sub 内存单元,寄存器 如:sub [0],ax
(4)and指令
逻辑与指令,按位进行与运算
例如: mov al ,01100011B
and al ,00111011B
(5)or指令
按位或指令,按位进行或运算
例如: mov al ,01100011B
or al ,00111011B
(6)数据长度:8086CPU指令中,可以处理两种尺寸的数据,byte和word。
(6.1)通过寄存器名指明要处理的数据的尺寸。
(6.2)在没有寄存器名存在的情况下,用操作符X ptr指明内存单元的长度,X在汇编语言中可以为word或者byte。例如:mov word ptr ds:[0] , 1
(6.3)有些指令默认了访问的是字单元还是字节单元,比如push指令只进行字操作。
(7)div指令
(7.1)除数:有8位和16位两种,在一个reg或者内存单元中。
(7.2)被除数:默认放在AX或DX和AX中,如果除数为8位,被除数为16位,默认在AX中存放;如果除数为16位,被除数为32位,在DX和AX中存放,DX存放高16位,AX存放低16位。
(7.3)结果:如果除数为8位,则AL存储除法操作的商,AH存储除法操作的余数;如果除数为16位,则AX存储除法操作的商,DX存储除法操作的余数。
div的格式如下:
div reg
div 内存单元
(8)伪指令dd
db(define byte)定义字节型数据,dw(define word)定义字型数据,dd(double word双字)定义双字型数据。
(9)dup指令
dup是一个操作符,在汇编语言中通db、dw、dd一样,也是由编译器是被处理的符号。它是和db、dw、dd等数据定义伪指令配合使用的,用来进行数据的重复。
db 3 dup (0) 定义了3个字节,它们的值都是0,相当于db 0 0 0
db 3 dup(0,1,2) 定义了9个字节,它们是0、1、2、0、1、2、0、1、2,相当于db 0,1,2,0,1,2,0,1,2
dup的使用格式如下:
db 重复的次数 dup (重复的字节型数据)
db 重复的次数 bup (重复 的字型数据)
bd 重复的次数 bup (重复 的双字型数据)