位操作、ASCII 转换与汇编过程解析
1. 位操作相关内容
1.1 拆分八进制转换
在处理 16 位整数时,可以将其用拆分八进制表示。这里需要编写一个 NEAR32 过程 splitOctal ,它的主要功能是把 16 位整数转换为一个长度恰好为 6 个字符的字符串,这个字符串代表该数字的拆分八进制值。该过程会通过栈传递两个参数:
1. 待转换的数字
2. 目标字符串的地址
此过程会从栈中移除参数,并且不会修改任何寄存器。
1.2 ASCII 字符串转换为 2 的补码整数
1.2.1 atod 宏
atod 宏会展开为以下指令序列:
lea eax,source ; source address to EAX
push eax ; source parameter on stack
call atodproc ; call atodproc(source)
这些指令的作用是调用 atodproc 过程,传递的唯一参数是要扫描的 ASCII 字符字符串的地址。由于结果要在 EAX 寄存器中返回,所以宏代码不会保存 EAX 寄存器。
1.2.2 atodproc 过程
超级会员免费看
订阅专栏 解锁全文
1075

被折叠的 条评论
为什么被折叠?



