汇编专题:小总结

发布时间:2023-12-31 00:08:04

寄存器的一些固定搭配及用法

cs:ip:决定cpu读取命令物理地址。
ss:sp:始终指向栈顶,决定栈的机制。
ds:决定cpu读取数据的基础地址。
ax:通常用来将数据传递给段寄存器。
cx:loop命令循环次数取决于cx。
dx:可作为累加结果的寄存器。
bx si di bp:可以通过[]表示数据。

一些汇编伪指令

dw命令:dw命令是写入数据的命令,dw命令从cs:0开始存储后面的数据。(16bit)

dw 0123h, 0456h,0789h,0abch,0defh,0fedh,0cbah,0987h

db命令:db命令是将数据转化为ascii码,从cs:0开始写入。(8bit)

db ‘abcd’

dd命令:定义双字节数据。(32bit)

dd 1

一些汇编指令

逻辑或算术运算

add:做加法
sub:做减法
div:做除法
mul:做乘法
or:或运算
and:和运算

循环指令

loop:循环次数取决于cx。

s: …
loop s

rep指令:循环次数取决与cx。

rep…

传送指令

mov:改变寄存器
push:入栈
pop:出栈
jmp:改变cs ip
jcxz:有条件的转移指令,属于段内短转移
ret:(栈中获取)修改ip的内容,实现段内近转移
retf:(栈中获取)修改cs 和 ip 的内容,实现段转移
call:传送指令

有条件的转移指令

段内短转移
指令 条件
jcxz:cx=0
je : zf=1
jne:zf=0
jb : cf=1
jnb:cf=0
ja : cf=0 且 zf=0
jna:cf=1 或 zf=1

与标志寄存器相关的指令

adc指令:带进位加法指令,利用cf位
sbb指令:带借位减法指令,利用cf位
cmp指令:比较指令
cld指令:df=0
std指令:df=1
pushf:将标志存储器数据压栈。
popf:将栈中数据存入标志存储器。

串传送指令

movsb:传送字节
movsw:传送字

操作符

dup:重复数据。

db/dw/dd 重复次数 dup (重复的数据)

offset:获取编译器处理符号(标号)的偏移地址。

offset 编译器处理符号(标号)

标志寄存器的几种标志

ZF标志:零标志位,记录相关指令执行后结果是否为零,结果是零zf=1,不是零zf=0
PF标志:奇偶标志位,记录相关指令执行后结果中1的个数是否为偶数,1的个数为偶数pf=1,为奇数pf=0
SF标志:符号标志位,记录相关指令执行后结果是否为负,结果为负sf=1,非负sf=0
CF标志:进位标志位,(无符号数运算)记录运算结果的最高有效位向更高位的进位值,或借位值。
OF标志:溢出标志位,记录(有符号数)运算的结果是否发生溢出,如果发生溢出of=1,没有溢出of=0
DF标志:方向标志位,在串处理指令中,控制si,di增减。df=0 每次操作后si di递增,df=1 每次操作后si di递减

汇编int中断 中断号含义

参考文章:INT 21H 指令说明及使用方法(汇编语言学习)

文章来源:https://blog.csdn.net/weixin_49777720/article/details/114414932
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。