汇编语言学习—寄存器

一个8086CPU寄存器均是16位,而数据类型有以下两种
1Byte = 8bite (字节型数据)
1word = 2Byte = 16bit (字型数据)
在这里插入图片描述

一、DS寄存器

DS数据段寄存器:存放要访问的数据段地址

mov bx,2000
mov ds,bx      //设置DS段地址寄存器的值为2000
mov al,[0]     //将2000:0000地址单元的字节型数据读取到al(8位)寄存器中
mov cx,[1]     //将2000: 0001地址单元的字形数据读取到cx(16位)寄存器中

二、CS(代码段寄存器)与ip(指令指针寄存器)

cs(Code Segement)用于存放指令所在的段地址
ip(Instruction Pointer)寄存器是用于存放指令所在地址的偏移地址
注意:因为8086CPU是16位,但是物理地址是20位的,它的内存寄存器只能表现16位的地址,因此使用ip寄存器来存放偏移地址。

CPU执行指令的步骤:
(1) 将CS、IP的内容送入地址加法器(段地址*16 + 偏移地址)合成物理地址
(2) 地址加法器将物理地址送入输入输出控制电路
(3) 输入输出控制电路将物理地址送上地址总线
(4) 然后CPU从物理地址指向的内存单元读取机器指令,并将机器指令通过数据总线送入CPU的输入输出控制电路
(5) 输入输出控制电路将读取的指令送入指令缓冲器,同时IP的内容更新为原内容加指令长度。
(6) 然后,执行控制器执行机器指令,并将执行后的内容送入相应的寄存器。
在这里插入图片描述

三、ss(栈寄存器)与sp(栈指针寄存器)

ss(Stack Segment):用于存放栈顶的段地址
sp(Stack Pointer):用于栈顶的偏移地址

//把bx入栈到1000:0 – 1000:f这段内存
mov ax,1000
mov ss,ax       //段地址
mov sp,0        //偏移地址
mov bx,1234   
push bx         //入栈
pop bx          //出栈

参考链接: https://blog.youkuaiyun.com/Apollon_krj/article/details/70550667?fromshare=blogdetail

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值