1 / 22
文档名称:

汇编语言常见指令.docx

格式:docx   大小:2,978KB   页数:22页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

汇编语言常见指令.docx

上传人:Alone-丁丁 2022/4/7 文件大小:2.91 MB

下载得到文件列表

汇编语言常见指令.docx

文档介绍

文档介绍:汇编语言常见指令
SHL(左移)
AND(与)
OR(或)
XOR(异或)
NOT(取反
8. 关系运算符
关系运算符用于两个数的比较,结果为“真(-1)”或“假(0)”
GT(>)
GE AF, CF

(1)MUL(Unsigned Multiplication):无符号数乘法
格式:MUL src
src(源操作数):8位/16位的寄存器/存储器
功能:8位源操作数时:AX←(AL)×源操作数
16位源操作数时:DX, AX←(AX)×源操作数

说明:
两个N位操作数相乘,得到2N位的乘积;
如果乘积的高N位为0,则CF=OF=0,否则CF=OF=1。其余

标志位无意义。
上述说明中N=8或16。
(2)IMUL(Signed Integer Multiplication):有符号数乘法
格式:IMUL src
src(源操作数):8位/16位的寄存器/存储器
功能:8位源操作数时:AX←(AL)×源操作数
16位源操作数时:DX, AX←(AX)×源操作数
说明:
两个N位操作数相乘,得到2N位的乘积;
如果乘积高N位为低N位的符号扩展,则CF=OF=0,否则
CF=OF=1,其余标志位无意义。
上述说明中N=8或16。

DIV(Unsigned Division):无符号除法
格式:DIV src
src(源操作数):8位/16位的寄存器/存储器
功能:8位源操作数时: (AX)÷源操作数,AL←商,AH←余数
16位源操作数时:(DX, AX)÷源操作数,AX←商,DX←余数
说明:
两个N位操作数相除,应首先把被除数零扩展为2N位;
例如,要进行除法(AX)÷(BX),假设AX、BX内均为无符号数:
MOV DX, 0 ;32位被除数高16位清零
DIV BX ;(DX, AX)÷BX,AX←商,DX←余数
如果(2N位)÷(N位)的商大于2N-1,会产生“除法溢出”错误。
上述说明中N=8或16。
IDIV(Signed Integer Division):有符号数除法
格式:IDIV src
src(源操作数):8位/16位的寄存器/存储器
功能: 8位源操作数时:(AX)÷源操作数,AL←商,AH←余数
16位源操作数时:(DX, AX) ÷源操作数,AX←商,DX←余数
15. 基本循环指令
格式:LOOP 标号
功能:CX←(CX)-1
如果(CX)≠ 0,转向“标号”处执行,否则执行下一条指令。
说明:
LOOP可以改变指令的执行次序,称为“控制转移指令”;
LOOP指令使一段程序重复地执行,称为“循环”。
重复执行的次数由CX寄存器中的值决定。CX寄存器因此称为
“计数器”。
16.
反汇编
‘-U ’ 、 ‘-U 偏移地址’
显示寄存器内容
‘-R ’ 、 ‘-R 寄存器名’
单步执行指令
‘-T ’ 、 ‘-T 指令条数’ 、 ‘-P ’
全速执行指令
‘-G ’ 、 ‘-G 终止地址’、 ‘-G=起始地址’
‘-G=起始地址 终止地址’
显示数据段内容
‘-D ’ 、 ‘-D 起始地址’、 ‘-D 起始地址L字节数’
修改数据段内容
‘-E 起始地址 数据1 数据2 …’
‘-F 起始地址L字节数 数据1 数据2 …’
退出
‘-Q ’

SHL 逻辑左移,最高位进入CF,最低位补0
SHR 逻辑右移,最低位进入CF,最高位补0
SAL 算术左移,最高位进入CF,最低位补0
SAR 算术右移,最低位进入CF,最高位不变

ROL 不带进位循环左移
ROR 不带进位循环右移
RCL 带进位循环左移
RCR 带进位循环右移
18. 无条件转移指令
⑴ 段内转移、直接寻址
⑵ 段内转移、间接寻址
⑶ 段间转移、直接寻址
⑷ 段间转移、间接寻址
JMP label
转到label指定的目标地址处,执行那里的指令
目的地址label的位置有2种情形:
和JMP指令在同一个段,叫做段内转移,转移时 CPU只改变IP;
和JMP指令不在同一个段,叫做段间转移,转移时CPU既要更改IP又要更改CS,