汇编语言—常见汇编指令汇总

2023-09-12 13:51:35

(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  (重复 的双字型数据)

  • 作者:一只迷茫的小狗
  • 原文链接:https://blog.csdn.net/qq_33300585/article/details/128277839
    更新时间:2023-09-12 13:51:35