汇编语言学习笔记 下载本文

div指令

div指令是除法指令。使用div做除法:

1)除数:有8位和16位两种,在一个寄存器后内存单元中。

2)被除数:默认放在AX或DX和AX中,如果除数为8位,被除数为16位,默认在AX中存放;如果除数为16位,被除数则为32位,在DX和AX中存放,DX存放高位16位,AX存放低位16位。

3)结果:如果除数为8位,则AL存储除法操作的商,ah 存储除法操作的余数;如果除数为16位,则AX存放除数操作的商,DX存储除法操作的余数。

格式如下: div reg(寄存器集合) div 内存单元

除数位数 8位 16位

隐含的被除数 AX DX-AX 商 AL AX 余数 AH DX 举 例 DIV BH DIV BX 伪指令——dd

dd:定义dword型数据,每个双字占用二个连续的字单元(4字节) dup

dup用来进行数据的重复 使用格式如下:

db 重复的次数 dup (重复的字节型数据) dw 重复的次数 dup (重复的字型数据) dd 重复的次数 dup (重复的双字型数据)

例:db 3 dup (0) db 3 dup (0,1,2)

db 3 dup (‘abc’, ‘ABC’)

dw 3 dup (10h, 2 dup (1,2,3))

第九章 转移指令的原理

修改IP,或同时修改CS和IP的指令统称转移指令

8086CPU的转移可以分为: 段内转移:只修改IP,如jmp ax

段间转移:同时修改CS和IP,如 jmp 1000:0

段内转移又可分为:

短转移:-128~127(即IP的修改范围) 近转移:-32768~32767

8086CPU的转移指令: 无条件转移指令 条件转移指令 循环指令 过程 中断

操作符offset

格式:offset 变量/标号

功能:取得变量或标号的偏移地址 例如:

assume cs:codesg codesg segment start:mov ax,offset start s:mov ax,offset s codesg ends end start

依据位移进行转移的jmp指令

CPU在执行jmp指令的时候并不需要转移的目的地址,而是通过翻译出的机器码中的指令码表示位移进行转移.