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

寄存器

在CPU中:

运算器进行信息处理;

寄存器进行信息存储;

控制器控制各种器件进行工作;

内部总线连接各种器件,在它们之间进行数据的传送,

本章以8086CPU为例讲解寄存器

2.1通用寄存器

8086CPU的所有寄存器都是16位的,可以存放两个字节。AX、BX、CX、DX这4个寄存器通常用来存放一般性的数据,被称为通用寄存器。

寄存器的逻辑结构(以AX为例)

8086CPU的上一代CPU中的存器都是8位的,为了保证兼容,使原来基于上代CPU 编写的程序稍加修改就可以运行在8086之上,8086CPU的AX、BX、CX、DX这4个寄存器都可分为两个可独立使用的8位寄存器来用:

AX 可分为 AH 和 AL:

BX可分为 BH 和 BL;

CX 可分为CH 和CL;

DX 可分为 DH 和 DL

以AX为例:

16 位寄存器及所分成的两个8位寄存器的数据存储情况:

2.2字在寄存器中的存储

字节:记为byte,一个字节由8个bit组成,可以存在8位寄存器中。

字:记为word,一个字由两个字节组成,这两个字节分别称为这个字的高位字节和低位字节。

十六进制数据表示:由于一个存储单元可存放8位数据,CPU中的寄存器又可存放n个8位的数据。也就是说,计算机中的数据大多是由1~N个8位数据构成的。很多时候,需要直观地看出组成数据的各个字节数据的值,用十六进制来表示数据可以直观地看出这个数据是由哪些8位数据构成的。比如20000写成4E20 就可以直观地看出,这个数据是由4E和20两个8位数据构成的,如果AX中存放4E20,则AH里是4E,AL里是20。这种表示方法便于许多问题的直观分析。在以后的课程中,我们多用十六进制来表示一个数据。

2.3几条汇编指令

例1:

指令不区分大小写。执行上述指令后,数据变化如下:

AX数据为044CH。分析:程序段中的最后一条指令 add ax,bx,在执行前 ax和bx中的数据都为8226H,相加后所得的值为:1044CH,但是ax为16位寄存器,只能存放4位十六进制的数据,所以最高位的1不能在ax中保存,ax中的数据为:044CH。

例2:

AX数据为0058H。分析:程序段中的最后一条指令 add al,93H,在执行前,al中的数据为C5H,相加后所得的值为:158H,但是al为8位寄存器,只能存放两位十六进制的数据,所以最高位的1丢失,ax中的数据为:0058H。此时al是作为一个独立的8位寄存器来使用的,和ah没有关系。

在进行数据传送或运算时,指令的两个操作对象的位数应当是一致的,

错误示例:

mov ax bl  (在8位寄存器和16位寄存器之间传送数据)

mov bh ax  (在16位寄存器和8位寄存器之间传送数据)

mov al 20000  (8位寄存器最大可存放值为255的数据)

add al 100H  (将一个高于8位的数据加到一个8位寄存器中)

检测点2.1

1.写出每条汇编指令执行后相关寄存器中的值

F4A3H  31A3H  3123H  6246H  826CH  6246H 

汇编指令

mov ax,62627

AX=F4A3H

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值