学习《汇编语言》笔记之二——寄存器(8086CPU)

本文详细介绍了8086CPU的14个16位寄存器及其用途,包括通用寄存器、指令指针、标志寄存器、段寄存器等,并详细讲解了通用寄存器的功能与应用,如累加寄存器AX、基址寄存器BX、计数寄存器CX等。此外,文章还阐述了指令指针IP和段寄存器的作用,以及简单的汇编指令和调试命令的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.  8086CPU 有14个16位寄存器
2.  这14个寄存器按其用途可分为(1)通用寄存器、(2)指令指针、(3)标志寄存器、(4)段寄存器等4类。
3. 通用寄存器有8个, 又可以分成2组,一组是数据寄存器(AX,BX,CX,DX4个),另一组是指针寄存器及变址寄存器(SP,BP,SI,DI4个).
4.  通用寄存器简介    
         AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据。
         BH&BL=BX(base):基址寄存器,常用于地址索引
         CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.
         DH&DL=DX(data):数据寄存器,常用于数据传递。
 为了兼容8位CPU,数据寄存器又分高8位AH,BH,CH,DH及低8位AL,BL,CL,DL。
         SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置
         BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置
         SI(Source Index):源变址寄存器,可用来存放相对于DS段之源变址指针
         DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。 
5. 指令指针IP
    IP指向的是指令地址的段内地址偏移量,又称偏移地址(Offset Address)或有效地址(EA,Effective Address)。 
6. 段寄存器
       CS(Code Segment):代码段寄存器
         DS(Data Segment):数据段寄存器
         SS(Stack Segment):堆栈段寄存器
         ES(Extra Segment):附加段寄存器。 
7. 寻址方式
    采用“基础地址+偏移地址”的方式寻址。 偏移地址是4位即上面说的“指令指针IP”。
8. 简单汇编指令
    mov ax 18         --->  将18送入寄存器ax中                                 ==>  ax = 18
    add ax  44E0H  ---> 寄存器ax中数值再加上十六进制(44E0)     ==>  ax = ax +44E0H  
9. 可以修改段寄存器及指令指针IP的指令 ---- "jmp" 
     方式:” jmp 段地址 :偏移地址“
     修改指令指针IP,也可以用”jmp 某个合法寄存器“     即 jmp ax,
     例如: 执行前ax=1001H,CS=2000H,IP=8542H
              执行 jmp ax 
              执行后ax=1001H,CS=2000H,IP=1001H
10. 汇编中Debug使用(一些命令功能)
      R ---> 查看,改变CPU寄存器的内容 

      D ---> 查看内存中的内容
      E ---> 改写内存中的内存
      U ---> 将内存中的机器指令翻译成汇编指令
      T ---> 执行一条机器指令
      A ---> 以汇编指令的格式在内存中写入一条机器指令 
例如:”r ax“ -->  就可以修改寄存器ax中的值
           ”r cs“ --> 就可以修改段地址中的值
           ”r IP“ --> 修改指令指针的值 
            D   ----> ”d 段地址:偏移地址“   d 1000:9 ——> 就是查看1000:9处的内容 一般显示128位。也可以指定某几位——d 1000:0 9 (看0到9位共十位的数据) 

此文为读书笔记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值