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

这篇具有很好参考价值的文章主要介绍了汇编语言—常见汇编指令汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

(10)push和pop指令

push  寄存器;//将一个寄存器中的数据入栈
pop 寄存器;//出栈,用一个寄存器接收出栈的数据
push 段寄存器;//将一个段寄存器中的数据入栈
pop  段寄存器;//出栈,用一个段寄存器接收出栈的数据

push和pop也可以在内存单元和内存单元之间传送数据:
push 内存单元;//将一个内存字单元处的数据入栈(栈操作都是以字为单位)
pop  内存单元;//出栈,用一个内存字单元接收出栈的数据

        指令执行时,CPU要知道内存单元的地址,可以在push、pop指令中只给出内存单元的偏移地址,段地址在指令执行时,CPU从ds中获取。
        (1)在SS、SP中存放栈顶的地址和偏移地址。提供入栈和出栈指令,它们根据SS:SP指示的地址,按照栈的方式访问内存单元。
        (2)push指令的执行步骤:①SP=SP-2:②向SS:SP指向的字单元中送入数据。
        (3)pop指令的执行步骤:①从SS:SP指向的字单元中读取数据;②SP=SP+2

        (4)任意时刻,SS:SP指向栈顶元素。
        (5)8086CPU只记录栈顶,栈空间的大小我们要自己管理。
        (6)用栈来暂存以后需要恢复的寄存器的内容时,寄存器出栈的顺序要和入栈的顺序相反。        
        (7)push、pop实质上是一种内存传送指令,注意它们的灵活应用。


 文章来源地址https://www.toymoban.com/news/detail-497894.html

到了这里,关于汇编语言—常见汇编指令汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • ARM汇编寄存器和常用指令详解

    ARM汇编寄存器和常用指令详解

    对于32位及其以下的ARM处理器来说,函数调用规则如下: 父函数与子函数的入口参数以此通过 R0~R3 这4个寄存器传递。 父函数在调用子函数前先将子函数入口参数存入 R0~R3 寄存器中,若只有一个入口参数则使用 R0 寄存器传递,若有2个入口参数则使用 R0 和 R1 寄存器传递,以

    2024年02月03日
    浏览(13)
  • 一、1.汇编指令、寄存器和寻址方式

    一、1.汇编指令、寄存器和寻址方式

    立即数:可以立即在一条机器指令后找到具体数值的数,如内存中00位写着加指令,01位写着1100_1111,意思就是将1100_1111(十进制207)加到某处,反之可以表示数据的地址。 低端字节序:16位寄存器数据存入内存(内存单位为8位),寄存器低位存入内存低位(如00)高位存入内

    2024年02月14日
    浏览(19)
  • ARM64 寄存器、常用汇编指令收集

    ARM64 有34个寄存器,包括31个通用寄存器、SP、PC、CPSR。 寄存器 位数 描述 x0-x30 64bit 通用寄存器,如果有需要可以当做32bit使用:WO-W30 FP(x29) 64bit 保存栈帧地址(栈底指针) LR(x30) 64bit 通常称X30为程序链接寄存器,保存子程序结束后需要执行的下一条指令 SP 64bit 保存栈指针,使用

    2023年04月20日
    浏览(15)
  • 51单片机汇编语言指令大全

    参考链接 https://blog.csdn.net/weixin_45702442/article/details/115874162 https://blog.csdn.net/acslsr/article/details/106881712 在这里稍作终结,方便复习 51系列单片机按照功能分科分为5大类 数据传送类指令28条; 算数操作类指令24条; 逻辑运算类指令25条; 控制转移类17条; 位操作类17条。 MOV A,R

    2024年02月07日
    浏览(15)
  • (十)汇编语言——CALL和RET指令

    相信大家肯定在C语言里面接触过函数这个概念,或者是一些高级语言里面的方法,那么汇编语言有没有这样类似的概念呢,答案是当然的,接下来就让我们来介绍一下汇编的模块化程序设计。 这个CALL指令呢,我们是第一次接触,它主要的作用就是调用子程序,实质上就是进

    2024年02月05日
    浏览(10)
  • 汇编语言——第10章 CALL和RET指令

    汇编语言——第10章 CALL和RET指令

    目录 引言 10.1 ret和retf 检测点10.1 10.2 call指令 10.3 依据位移进行转移的call指令 检测点10.2  10.4 转移的目的地址在指令中的call指令 检测点10.3  10.5 转移地址在寄存器中的call指令 检测点10.4  10.6 转移地址在内存中的call指令 检测点 10.5 10.7 call和ret的配合使用 10.8 mul指令 10.9 模块

    2023年04月16日
    浏览(14)
  • C语言代码的x86-64汇编指令分析过程记录

    C语言代码的x86-64汇编指令分析过程记录

    先通过Xcode创建一个terminal APP,语言选择C。代码如下: 在return 0处打上断点,并且Xcode菜单里选择Debug|Debug Workflow|Always Show Disassembly,点击运行。这时候断点会跳到汇编代码里,得到汇编代码如下: 首先介绍下面会用到的几个寄存器: rip : 程序计数寄存器 rsp : 栈指针寄存器

    2024年02月14日
    浏览(15)
  • 用ARM进行汇编语言编程(4)带有分支的循环和条件指令执行

    用ARM进行汇编语言编程(4)带有分支的循环和条件指令执行

    ARM 编程模拟器网站地址: 在arm里也有和高级语言一样的for和while循环,可以根据条件来判断是否执行 首先我们创建一个data标签,然后在里面写一个分支,存放一些数值,然后使这些存放的数值依次相加 然后我们要将list加载到内存里 然后使用直接寻址,将r0寄存器里的值放

    2024年02月06日
    浏览(16)
  • 汇编语言实验8:BIOS/DOS功能调用与宏指令程序设计

    汇编语言实验8:BIOS/DOS功能调用与宏指令程序设计

    掌握汇编语言程序设计的基本方法和技能 掌握汇编语言源程序的编辑汇编连接和执行的完整过程 通过上机操作理解宏定义、宏调用、宏展开的概念,熟练运用宏功能编写程序 掌握BIOS/DOS基础功能的实现调用方法 理解常用的DOS功能调用的基本使用,能熟练运用1号,2号,9号,

    2024年02月03日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包