汇编语言学习——寄存器

对于寄存器相关的一些学习总结

基础知识

机器语言是机器直接识别的程序语言或指令代码,这是我们在计算机产生初期常用的一种语言,但机器语言是由0,1数字组成的,在输入是十分繁琐,且一旦出现错误,难以查找,于是为了方便辨别和记忆,汇编语言就产生了。
汇编语言主体使汇编指令,但汇编指令是计算机无法直接识别运行的,所以我们要通过编译器将其编译成机器码,再由CPU进行运行。
CPU对数据(一般存储于存储器(内存)中)的读写
主要分为3类:1.存储单元的地址(地址信息);
2.器件的选择,读或写的命令(控制信息);
3.读或写的数据(数据信息)。
要读取这三种信息则是需要总线从逻辑上分为:
1.地址总线 2.控制总线 3.数据总线;

在这里插入图片描述 图1.1各线在CPU读取数据时的作用

寄存器(CPU工作原理)
以下均已8086CPU为例。
程序员通过改变各种寄存器中的内容来实现对CPU的控制。
寄存器均为16位,可以存放两个字节。
将AX,BX,CX,DX称为通用寄存器。
以AX为例:其可分为AH和AL,其中AL中存储低位数据(0-7),AH中存储高位数据(8-15)

例如:字:0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0
将其从右至左按0-15顺序编号,前八位即是低位字节,后八为即是高位字节。

CPU将物理地址通过地址线传给内存,从而读取相应数据。

我们将存储器分为若干个存储单元,并从0开始顺序编号,对于微型存储器来说,一个存储单元可以存储一个字节即八个二进制位,每个存储单元都有自己的唯一地址,我们将之称为物理地址

物理地址是通过地址加法器将两个16位地址合称为20位:
物理地址=段地址*16+偏移地址
段地址存放在CS代码段寄存器中(段地址用M表示),偏移地址存放在IP指令指针寄存器中(偏移地址用N表示)。

修改CS.IP的指令(通过对其的修改可以控制CPU执行目标指令):jmp 段地址:偏移地址(用指令中给出的段地址修改CS,偏移地址修改IP)

jmp 2AE3:3 即使CS=2AE3H,IP=0003H 故CPU将从2AE33H处读取指令

jmp ax(用寄存器中的值修改IP)
其功能类似 mov IP ax但不可用mov替代;

jmp ax,执行前:ax=1000H,CS=2000H,IP=0003H
执行后:ax=1000H,CS=2000H,IP=1000H

常用汇编指令:

mov ax ,bx:将bx中的值赋给ax
add ax, bx: 将ax的值变为ax+bx
sub ax,bx:将ax的值变为ax-bx

栈是一种具有特殊的访问方式的存储空间
特点(特殊性):先进后出,后进先出
8086CPU提供入栈(PUSH)和出栈POP两种操作,都是以字为单位的

任意时刻,SS:SP指向栈顶

PUSH ax:表示将寄存器ax中的数据送入栈中
POP ax:表示从栈顶取出数据送入ax

                      *如有错误,欢迎大家批评指正*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值