当前位置:编程学习 > 汇编语言 >>

汇编中eax和al或ah有什么关系

具体的有什么联系呢?难道没有什么具体的联系吗?只是一个是32位寄存器?另一个是8位的如果说我有这样一句mov eax , 0x00230024那么al会有什么变化呢?我听说al是取低字节的?(难道是取eax的低字节?)  请高手解决,本人初识汇编,很多地方未免闹笑话,请保持对学术的尊敬回答本题,不希望乱答题,误导他人的人,谢谢了(献上100分)
答案:先请看图,图看懂了就基本解决这个了疑问了。

00000000 00000000 00000000 00000000
|===============EAX===============|--32个0,4个字节,2个字,1个双字
                    |======AX=======|--16个0,2个字节,1个字
                    |==AH===|-----------8个0,1个字节
                             |===AL==|---8个0,1个字节
 

虽说EAX是32位的寄器,但其实只是在原有的8086CPU的寄存器AX上增加了一倍的数据位数而已。故而EAX与AX根本不可能独立,二者是整体与部分的关系。

对EAX直接赋值,若更改了低16位自然会改变了AX值,而AX又可以影响EAX整体。而AH,AL寄存器和AX之间的关系也是如此。
其他:AL是EAX的低8位(0-7位) AH是EAX中的8-15位 AH和AL组成16位的AX AX是EAX32位中的低16位 你看看那个图:
eax 是一个32位的寄存器,ax是16位的

ah 和al 是8位的,就是ax寄存器
改了ah 或al 。  ax就变了。
比如:张山 是16划 张8划 山8划 。我可以把张山按16划处理,也可以按两个8划处理
张是高8划山是低8划。我把低8划改成四,那么张山 就变化成张四了。明白? 

上一个:汇编加密解密
下一个:Windows 环境下32 位汇编语言程序设计是用哪种软件编程的?急......

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,