关于学习汇编的一些规则的理解(div mul cf of)
->1.div(除法) 被除数/除数
->一共有三种格式的除法,分别是8位,16位,32位,这里的位数表示的是除数的位数
->实现div其实也很简单就是除数为被除数的一半就ok
->需要注意的就是ax和dx这两个寄存器,因为mul(乘法)和div(除法)和这两个寄存器紧密相连
->相关关系如下,需要记住的就是这个格式dx:ax 就是dx永远为高位,ax永远为低位,这个在mul中也同样适用
被除数 除数 商 余数
ax 8位寄存器/8位内存操作数 al ah
dx:ax 16位寄存器/16位内存操作数 ax dx
edx:eax 32位寄存器/32位内存操作数 eax edx
->2.mul(乘法)
->乘法就很简单了,因为不存在商和余数的问题
->规则如下:
被乘数 乘数 积
al 8位操作数 ax
ax 16位操作数 dx:ax
eax 32位操作数 edx:eax
->3.cf(借位标志位)
->也就是当你进行加法/减法时,向虚拟位借位,cf 置1,否则为0
eg.
mov al,90
add al,200
上面的例子就会发生进位,因为al 为8位范围为0-255 而他们相加为290>255所以cf置1,在这里是当作无符号位计算的
->4.of(溢出标志位)
->也就是在进行有符号位进行算法时,数据发生溢出,因为是有符号位所以他的表示范围为-128-127(10000000-01111111)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步