8086汇编学习笔记4-指令
来源:互联网 发布:淘宝导航栏分割线代码 编辑:程序博客网 时间:2024/06/07 05:39
汇编指令,有相对应的机器指令
1. 数据传送指令mov
mov ax, bx
2. 加法指令add
mov ax, 1
mov bx, 2
add ax, bx;ax=ax+bx
执行后ax值为3
3. 加1指令inc
mov bx, 1
inc bx
运算后bx值为2,相当于执行add bx, 1
4. 减法指令sub
mov ax, 5
mov bx, 3
sub ax, bx;ax=ax-bx
执行后ax值为2
5. 乘法指令mul
8位数相乘,相乘的数都为8位,一个默认在al中,另一个在寄存器或内存中,指令执行后,结果在ax中
16位数相乘,相乘的数都为16位,一个默认在ax中,另一个在寄存器或内存单元中,指令执行后,结果在ax和dx中,dx存放高16位,ax存放低16位
例如计算100*10
分析,两个数都小于255,可以做8位乘法
mov al, 100
mov bl, 10
mul bl
结果ax值为1000
6. 除法指令div
div 寄存器或内存单元,
8位除法,除数8位,在一个寄存器或内存单元中,被除数16位,默认在ax中,指令执行后,al中存放商,ah存放余数
16位除法,除数16位,在寄存器或内存中,被除数32位,默认在ax和dx中,dx存放高16位,ax存放低16位,指令执行后,ax存放商,dx存放余数
例如计算1001/100
分析,被除数1001可以用ax存放,除数100可以用一个8位寄存器存放,所以可以进行8位除法
mov ax, 1001
mov bl, 100
div bl
执行后al值为10,ah值为1
7. and逻辑与指令,按位进行与运算
mov al, 01100011b
and al, 00111011b
运算后al值为00100011b
8. or逻辑或指令,按位进行或运算
mov al, 01100011b
or al, 00111011b
运算后al值为01111011b
9. 逻辑左移指令shl和逻辑右移指令shr
逻辑移位,最后移出位写入CF中,差的位用0补充,如果移动位数大于1,则必须将移动位数放在cl寄存器中。
mov al, 01001000b
shl al, 1
运算后al值为10010000b,CF值为0
mov al, 01010001b
mov cl, 3
shl al, cl
运算后al值为10001000b,CF值为0
10. 循环指令loop
loop 标号
CPU在执行loop指令时,先将cx值减1,再判断cx值是否为0,如果为0,结束循环,如果不为0,跳到标号处继续执行程序
mov ax, 2
mov cx, 11
s: add ax, ax
loop s
循环11次,执行add指令,结果为2的12次方运算
11. adc指令,带进位加法指令,做加法时加上CF这个进位,一般和add用于大数据的加法运算
1ef000h+201000h
mov bx, 0f00h
add bx, 1000h;0f00h+1000h
mov ax, 001eh
adc ax, 0020h;001eh+0020h+CF
计算结果在ax和bx中,ax存放低16位,bx存放高16位
12. sbb,带借位减法指令,做减法运算时减去CF这个借位,一般和sub用于大数据的减法运算
003e1000h-00202000h
mov bx, 1000h
sub bx,2000h;1000h-2000h
mov ax, 003eh
sbb ax, 0020h
计算结果在ax和bx中,ax存放高16位,bx存放低16位
13. cmp,比较指令,相当于做减法运算,只是不保存运算的结果,只是对标志寄存器产生影响
条件转移指令
je等于则转移
jne不等于则转移
jb小于则转移
jnb不小于则转移
ja大于则转移
jna不大于则转移
14. 串传送指令
(1) movsb,串传送指令,将ds:si指向的内存单元的字节数据送入到es:di中,根据标志寄存器DF值将si和di增1或减1,DF=0,增1,DF=1,减1
(2) movsw,串传送指令,将ds:si指向的内存单元的字数据送入到es:di中,根据标志寄存器DF值将si和di增2或减2,DF=0,增2,DF=1,减2
rep movb或rep movw根据cx的值,重复执行串传送指令,相当于
s:movsb
loop s
cld将标志寄存器DF置0
sld将标志寄存器DF置1
15. pushf功能是将标志寄存器值压入栈,popf是从栈中弹出数据,送入标志寄存器中
- 8086汇编学习笔记4-指令
- 8086汇编学习笔记5-伪指令
- 8086汇编学习笔记8-转移指令
- 8086汇编指令笔记
- X86汇编指令学习笔记
- 汇编学习笔记第4~10章:汇编原理-汇编指令实战
- 汇编指令学习笔记(1)
- 汇编学习笔记--转移指令的原理
- 汇编学习笔记--CALL和RET指令
- ARM汇编伪指令学习笔记
- [汇编学习笔记][第十三章int指令]
- (学习笔记)ARM汇编指令集
- 学习笔记-----浅谈汇编指令CMP运行机制
- arm 汇编学习常用指令伪指令笔记汇总
- (4)ok6410学习之汇编指令学习
- 8086汇编笔记(转移指令原理)
- 汇编笔记--伪指令
- 汇编常用指令笔记
- 8086汇编学习笔记2-寄存器
- 8086汇编学习笔记3-程序组织
- VS 03 05 08 找不到一个或多个组件的解决方法
- Linux rpm 提示安装成功,可是查询的时候发现没有软件列表
- Flash常见问题与解答
- 8086汇编学习笔记4-指令
- 8086汇编学习笔记5-伪指令
- 常用的正则表达式(带说明)
- 最大限度的提高Domino下的运行速度(网上总结)
- 8086汇编学习笔记6-寻址方式
- 1.5、代理模式
- 8086汇编学习笔记7-标志寄存器
- 8086汇编学习笔记8-转移指令
- Linux 下Sed基本用法