关于16位CPU汇编拓展到32位的问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 13:30:26
我略微学了一点16位寄存器的汇编教程(貌似大部分都是16位),现在对于32位寄存器的汇编有些不解。

我是通过反汇编程序OD来看的。里面有这么几种寄存器(以CX举例)
ECX
CX
CH/CL

以我的推测CX应该是ECX的后一半,而CX前一半和后一半分别是CH和CL,但是用MUL指令做实验的时候失败了,结果是CL应该是ECX的后一半...不知道到底怎么回事...貌似自学还是很难啊

现在就是想问,当CX拓展成ECX的时候,相应的子寄存器是怎样拓展的呢?

谢谢大家

ECX 的低16位叫 CX,
CX 的低8位叫 CL,高8位叫 CH
这个不用自己试,i386 的文档里面明确写着。

估计你的代码默认使用 CX 作为操作数,
而当时 CX 中只有 CL 有值,CH 为0 。