二、8086汇编命令大全

这篇博客详细介绍了8086汇编语言的基础指令,包括加法、减法、自增、自减、与运算、或运算、乘法、除法、循环、无条件转移、条件转移、栈段操作、伪指令、寄存器使用,以及函数调用和标志寄存器的相关指令。通过实例解析了每个指令的语法和用途,帮助读者深入理解8086汇编语言。
摘要由CSDN通过智能技术生成

1、基础指令

1.1、MOV 指令

将逗号前的寄存器中的值修改为逗号后寄存器的值、内存的值或指定的值

语法:

mov [寄存器], [需要放入的值]

示例:

mov ax, 100

将 100 赋值到 ax 寄存器

也可以将一个寄存器中的值赋值到另一个寄存器

mov bx, 100 ; 将100赋值到bx
mov ax, bx ; 将bx中的值赋值到ax中

也可以将内存中的值赋值到寄存器中

mov ax, 2000H ; 将段地址先储存到ax中
mov ds, ax ; 设置段地址
mov bx, 1000H ; 将偏移地址储存到bx中,以便引用

mov ax, [bx] ; 将段地址为2000,偏移地址为1000的内存中的值赋值到ax中
mov ax, ds:[bx] ; 效果同上
mov ax, ds:[1000H] ; 效果同上

在源码中,不可以直接使用 [0] 来表示偏移地址,必须引用其他寄存器中的值,或者使用 ds:[0] 这种格式。

1.2、使用 idata

可以在程序中使用 idata 更方便的定位到指定的偏移地址

示例:

mov ax, [bx+10]
mov ax, [bx+si+10]

可以在设置偏移地址的方括号中使用运算

1.3、操作符 PTR

一般在执行计算时,指令后的寄存器会默认指定计算的值是字数据还是字节数据。例如:add al, sp:[0]add ax, sp:[0] ,但是在一些特殊情况下,编译器无从得知需要计算的数是字数据还是字节数据,此时,就需要操作符 ptr 来指定数据类型。

语法:

[指令] [word/byte] ptr [操作]

示例:

inc word ptr sp:[0] ; 以字为单位将指定内存中的数据自加

1.4、操作符 OFFSET

取得对应标号的偏移地址

示例:

s:mov ax, offset s ; 将标号s所处的偏移地址复制到ax寄存器中

2、计算指令

2.1、ADD 加法

将第二个值和第一个寄存器中的值相加,并放入第一个寄存器中,用法同 mov

语法:

add [寄存器], [需要相加的值]

2.2、 SUB 减法

减法运算,用法同 add 指令

示例:

sub ax, 10

2.2、INC 自增& DEC 自减

自增,将指定的值加一。

语法:

inc [寄存器]
inc [内存地址]

自减,将指定的值减一

语法:

dec [寄存器]
dec [内存地址]

2.3、AND 与运算

逻辑与指令,将两个值进行逻辑与计算

1 and 1 = 1
0 and 1 = 0
1 and 0 = 0
0 and 0 = 0

语法:

and [寄存器、内存地址], [寄存器、内存地址]

示例:

and ax, bx

2.4、OR 或运算

逻辑或云端,将两个值进行逻辑或计算

1 or 1 = 1
0 or 1 = 1
1 or 0 = 1
0 or 0 = 0

语法:

or [寄存器、内存地址], [寄存器、内存地址]

示例:

or ax, bx

2.5、 MUL 乘法

对指定数值进行乘法计算

  • 8位的值进行相乘时结果在 ax 中,乘数默认在 al
  • 16位的值进行相乘时 dx 中为高位 ax 中为低位,乘数默认在 ax

2.6、 DIV 除法

除法指令 division 对寄存器的值进行除法运算。

  • 当除数为字节型数据时,执行 div 指令后
    • ax 寄存器中的值会被作为被除数
    • 结果:
      • al 中为结果的商
      • ah 中为余数
  • 当除数为字型数据时
  • 11
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌尘吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值