笑看天下无敌手 发表于 2024-1-18 08:24:37

汇编常用指令(持续更新)


[*]and dest,src将目标与源做与操作
[*]or dest,src将目标与源做或操作
[*]add   加得数的值超出范围即会溢出
[*]inc 汇编语言中的自增指令,相当于++
[*]div指令

[*]不会给出被除数


[*]切记提前在默认的寄存器中设置好被除数,且默认寄存器不做别的用处

[*]dup设置内存空间,与db、dw、dd等数据定义伪指令配合使用,进行数据的重复
[*]nop的机器码占一个字节,器占位作用,为空
[*]jmp指令——无条件转移

[*]可以只修改IP,也可以同时修改CS和IP


[*]需给出信息

[*]转移的目的地址


[*]转移的距离


[*]短转移 jmp short 标号

[*]功能:(ip)=(ip)+八位位移


[*]原理

[*]注意位移的范围,避免转移位移超界




[*]近转移 jmp near ptr 标号

[*]相比于短转移仅是将八位位移转变为16位位移


[*]指明了相对于当前IP的转移位移



[*]远转移 jmp far ptr 标号

[*]指明了跳转到的目的地址,即包含了标号的段地址cs和偏移地址IP



[*]jmp 16位寄存器

[*]IP =(16位寄存器)



[*]转移地址在内存中的jmp指令


[*]jcxz 有条件转移指令(短转移)

[*]jcxz 标号(包含转移的位移)

[*](cx)= 0,则转移到标号处执行


[*](cx)!=0,什么都不做


[*]loop循环

[*]CX存放循环次数

[*]call指令和ret指令

[*]call 标号

[*]可以跳转到指定的位置,相当于C语言中的go语句


[*]调用子程序https://api2.mubu.com/v3/document_image/8ae1cbb8-c950-47b0-ad31-2351d378d9d6-23571506.jpg


[*]call far ptr 标号

[*]实现段间转移


[*]操作



[*]call 16位寄存器


[*]call word ptr 内存单元地址


[*]call dword ptr 内存单元地址

[*]高地址放段地址,低地址放偏移地址




[*]ret指令

[*]与call指令相结合,在call跳转到指定位置执行语句后,加上ret即会返回到call指令的下一条语句


[*]相当于pop IP


[*]也可单独使用



[*]retf:用栈中数据修改CS和IP的内容

[*]相当于pop IPpop CS



[*]mul 指令做乘法

[*]被乘数同样默认存放


[*]格式

[*]mul 寄存器


[*]mul 内存单元



[*]乘法指令https://api2.mubu.com/v3/document_image/7a8dd765-312e-458a-8372-30496b118a45-23571506.jpg

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 汇编常用指令(持续更新)