汇编语言学习笔记:寄存器(1)

8086CPU(16位)的寄存器

16位CPU有以下几方面的结构特性:
    1. 运算器一次最多可处理16位数据
    2. 寄存器的最大宽度为16位
    3. 寄存器和运算器之间的通路为16位

8086CPU的所有寄存器都是16位的,可以存放两个字节
8086CPU内部,能够一次性处理、传输、暂存的信息最大长度是16位(内存单元的地址在送上地址总线之前)
8086CPU有20位地址总线,可以传送20位地址,达到1MB寻址能力


通用寄存器        段寄存器(当8086CPU要访问内存时由这4个段寄存器提供内存单元的段地址)

    AX                CS
    BX                DS
    CX                SS
    DX                ES

8086CPU物理地址的表示:
"段地址 * 16 + 偏移地址 = 物理地址"
"   基础地址  + 偏移地址 = 物理地址"
"        CS      :       IP        = 物理地址"


CS和IP是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址
CS:代码段寄存器
IP:指令指针寄存器
任意时刻,设CS中M,IP中N,8086CPU将从M*16+N单元开始,读取一条指令并执行
也可以这样表述:任意时刻,8086CPU取CS:IP指向的内容当做指令执行

8086CPU工作过程概要:
    1. 从CS:IP内存单元读取指令,读取的指令进入指令缓冲器
    2. IP = IP + Length(指令长度)
    3. 执行指令

8086CPU加电或复位后(即CPU刚开始工作时)CS和IP被设置为CS = FFFFH,IP = 0000H,即在8086PC机启动时,CPU从内存FFFF0H单元中
读取指令,FFFF0H单元中的指令是8086PC机开机后执行的第一条指令

可以通过改变CS:IP中的内容来控制CPU执行目标指令
mov:传送指令(可以修改大部分寄存器的值,但是不能用于设置CS、IP)

能够修改CS、IP的指令统称为转移指令,例如jmp
格式:"jmp 段地址:偏移地址"
功能:用指令中给出的段地址修改CS,偏移地址修改IP
例如:jmp 2AE3:3, 执行后CS = 2AE3H, IP = 0003H,CPU将从2AE33H处读取指令

若单独修改IP内容,可用"jmp 某一合法寄存器",功能为"用寄存器中的值修改IP"
例如:"jmp ax"
      执行前: ax = 1000H, CS = 2000H, IP = 0003H
      执行后: ax = 1000H, CS = 2000H, IP = 1000H

其功能类似于"mov IP, ax"指令


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值