- and dest,src将目标与源做与操作
- or dest,src将目标与源做或操作
- add 加得数的值超出范围即会溢出
- inc 汇编语言中的自增指令,相当于++
- div指令
- 不会给出被除数
- 切记提前在默认的寄存器中设置好被除数,且默认寄存器不做别的用处
- 不会给出被除数
- dup设置内存空间,与db、dw、dd等数据定义伪指令配合使用,进行数据的重复
- nop的机器码占一个字节,器占位作用,为空
- jmp指令——无条件转移
- 可以只修改IP,也可以同时修改CS和IP
- 需给出信息
- 转移的目的地址
- 转移的距离
- 短转移 jmp short 标号
- 功能:(ip)=(ip)+八位位移
- 原理
- 注意位移的范围,避免转移位移超界
- 注意位移的范围,避免转移位移超界
- 功能:(ip)=(ip)+八位位移
- 近转移 jmp near ptr 标号
- 相比于短转移仅是将八位位移转变为16位位移
- 指明了相对于当前IP的转移位移
- 相比于短转移仅是将八位位移转变为16位位移
- 远转移 jmp far ptr 标号
- 指明了跳转到的目的地址,即包含了标号的段地址cs和偏移地址IP
- 指明了跳转到的目的地址,即包含了标号的段地址cs和偏移地址IP
- jmp 16位寄存器
- IP =(16位寄存器)
- IP =(16位寄存器)
- 转移地址在内存中的jmp指令
- 转移的目的地址
- 可以只修改IP,也可以同时修改CS和IP
- jcxz 有条件转移指令(短转移)
- jcxz 标号(包含转移的位移)
- (cx)= 0,则转移到标号处执行
- (cx)!= 0,什么都不做
- (cx)= 0,则转移到标号处执行
- jcxz 标号(包含转移的位移)
- loop循环
- CX存放循环次数
- CX存放循环次数
- call指令和ret指令
- call 标号
- 可以跳转到指定的位置,相当于C语言中的go语句
- 调用子程序
- call far ptr 标号
- 实现段间转移
- 操作
- 实现段间转移
- call 16位寄存器
- call word ptr 内存单元地址
- call dword ptr 内存单元地址
- 高地址放段地址,低地址放偏移地址
- 高地址放段地址,低地址放偏移地址
- 可以跳转到指定的位置,相当于C语言中的go语句
- ret指令
- 与call指令相结合,在call跳转到指定位置执行语句后,加上ret即会返回到call指令的下一条语句
- 相当于pop IP
- 也可单独使用
- 与call指令相结合,在call跳转到指定位置执行语句后,加上ret即会返回到call指令的下一条语句
- retf:用栈中数据修改CS和IP的内容
- 相当于pop IP pop CS
- 相当于pop IP pop CS
- mul 指令做乘法
- 被乘数同样默认存放
- 格式
- mul 寄存器
- mul 内存单元
- mul 寄存器
- 乘法指令
- 被乘数同样默认存放
- call 标号