第十三课_8位和16位通用寄存器

前言

很久没写东西了,今晚下班抽空写写。

这部分的内容很简单,但是对刚接触的同学来说可能比较难理解。今天讲8位的和16位的通用寄存器。

在十一课中,我们知道了32位的通用寄存器。分别是EAX、ECX、EDX、EBX、ESP、EBP、ESI、EDI

今天讲的16位寄存器分别为:AX、CX、DX、BX、SP、BP、SI、DI

对比32位和16位寄存器的名称,会发现其实16位的寄存器只是少的一个字母E

今天讲的8位的寄存器分别为:AL、CL、DL、BL、AH、CH、DH、BH

下面的内容可能对刚入门的同学比较难理解一点。

首先说明一点,这些8位、16位、32位的寄存器,并不是相互独立的8位寄存器在16位寄存器中,而16位寄存器在32位寄存器中。或者说:32位寄存器中,取015位的部分组成16位寄存器,16位寄存器对半分,成为8位寄存器。不明白的看下图。

可能还有同学不明白,下面以EAX为例讲讲它们的关系。看下图,32位寄存器EAX,占用031位。把EAX从中间分开,取015,就是16位寄存器AX。再从AX中间分开,低位07位为8位寄存器AL;高位815位为8位寄存器AH

在OD中测试寄存器之间的关系

用OD随便打开一个exe。(OD的使用请看上节课),往EAX中写满A。输入:mov eax,0xAAAAAAAA

往16位寄存器AX中写满B,输入:mov ax,0xBBBB

往8位寄存器AL中写满C,输入:mov al,0xCC

往8位寄存器AH中写满D,输入:mov ah,0xDD

写完上面的内容开始测试运行结果,按F8。可以看到32位寄存器EAX写满A

再按F8单步运行,可以看到16位寄存器AX写满B,(即EAX中的低16位)。

再按F8,可以看到8位寄存器AL写满C,(即EAX中的07位)。

再按F8,可以看到8位寄存器AH写满D,(即EAX中的815位)。

通过上面的讲解应该是了解了。​ 

写于2020.4.21 22:59

 

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值