汇编语言:寄存器相关概念初理解(通用寄存器、段寄存器、专用寄存器)
1.寄存器分类
一图抵千言:
2.详细介绍及注意事项
(1)AX BX CX DX被称为通用寄存器(可被分割为2个8位寄存器),存放数据的,数据寄存器(16位)寄存器。
(2)2byte = 16 bit 0000 0000 0000 0000~1111 1111 1111 1111 0~FFFFH 0~65535 65536
(3)AX = AH + AL
BX = BH + BL
CX = CH +CL
DX = DH+ DL
(4)内存的最小单元为字节 8bit,CPU从内存中读取一个 字节 8bit 字符型数据(8位数据)到8位寄存器中,16根数据线的宽度决定了 CPU 一次性能够读取多长的数据,8086 CPU 一次性可以处理两种尺寸的数据,8位寄存器进行8位运算保存8位数据,寄存器是互相独立的,AL就是AL,AH就是AH ,不会互相影响。
**下面重点介绍标志寄存器: **
1)用途:标志寄存器F(FLAGS),又称程序状态字寄存器PSW,是用以记录或存放状态标志和控制标志信息的。
2)状态标志位——用以记录当前运算结果的状态信息。
3)控制标志位——用以存放控制CPU工作方式的标志信息。
4)进位标志CF(相对于无符号数来说)(Carry Flag)
当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。
例如:3AH + 7CH=B6H,没有进位:CF = 0
AAH + 7CH=(1)26H,有进位:CF = 1
5)溢出标志OF(相对于有符号数来说)(Overflow Flag)
若算术运算的结果有溢出,则OF=1;否则 OF=0。
只是对有符号数而言。对无符号数而言,OF=1并不意味着结果出错。
例如:80H - 01H=7FH = 127, OF=1
对于无符号数而言,128 - 1 = 127,正确
对于有符号数而言,-128 - 1 = 127,错误
比较:
(1)进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;
(2)溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。
牛刀小试:
执行下列程序后,请思考为什么(AX)=3, OF=0, CF=0:
MOV AX, 1
MOV BX, 2
ADD AX, BX
彩蛋!!!
位、字、字节概念补充:
(1)位,是最基本的概念,在计算机中,由于只有逻辑0和逻辑1的存在,因此很多东西、动作、数字都要表示为一串二进制的字码例如: 1001 0000 1101等等。其中每一个逻辑0或者1便是一个位。例如这个例子里的1000 1110共有八个位,它的英文名字叫(bit),是计算机中最基本的单位。
(2)字节 Byte,是由八个位组成的一个单元,也就是8个bit组成1个Byte。字节有什么用呢? 在计算机科学中,用于表示ASCII字符,便是运用字节来记录表示字母和一些符号~例如字符A便用 “0100 0001”来表示。
(3)字节以上,便是字:16个位为一个字,它代表计算机处理指令或数据的二进制数位数,是计算机进行数据存储和数据处理的运算的单位。通常称16位是一个字,而32位呢,则是一个双字,64位是两个双字。
本文部分内容来源于互联网,如有侵权请及时联系我删除!!如有疑问,可加QQ:3451707815与作者探讨!