欢迎来到天天文库
浏览记录
ID:39513311
大小:655.50 KB
页数:57页
时间:2019-07-04
《汇编语言基础及组成原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2.1微型计算机系统2.1.1微型计算机系统概念汇编语言与微型计算机系统密切相关。先来明确汇编语言的学习内容。第1章中提到的三条汇编指令:MOVAX,35ADDAX,27MOVZ,AX这几条指令中涉及到寄存器(AX)、加法运算、存储单元(Z)、数据的获取和传送、指令的存放等内容。2.1.2微处理器微处理器分为执行部件EU和总线接口部件BIU两部分。执行部件EU中包含运算器的算术逻辑运算单元ALU、通用寄存器组、标志寄存器FLAGS、EC单元控制系统等;总线接口部件BIU包含段寄存器组(CS、DS、ES、SS)、指令指针寄存器IP、指令队列单元、地址加
2、法器、总线控制系统等。2.280X86寄存器2.2.18086寄存器组分类数据寄存器:包括AX、BX、CX、DX四个16位的通用寄存器。其中DX存放高字(高16位),AX存放低字(低16位)。数据寄存器中每个寄存器又可以分为2个8位的寄存器。分别为AH、AL,BH、BL,CH、CL,DH、DL。AH为高字节(高8位)寄存器、AL为低字节(低8位)寄存器。数据寄存器表示为(DX)=2345H,(AX)=6789H,存放形式为:例1用DX、AX寄存器保存双精度数23456789H。例2用AX寄存器存放一个字1234H,表示为(AX)=1234H,存放形式
3、为:地址寄存器包括指针和变址寄存器SI、DI、SP、BP四个16位寄存器。顾名思义,它们可用来存放存储器的偏移地址。另外,它们也可以作为通用寄存器用。严格地说,用来存放存储器偏移地址的寄存器都应该叫地址寄存器,如BX基址寄存器、IP指令指针寄存器等。SI源变址寄存器,可用于存放源缓冲区的偏移地址。DI目的变址寄存器,可用于存放目的缓冲区的偏移地址。SP堆栈指针寄存器,用于指出堆栈区的栈顶的偏移地址。BP基址指针寄存器,用于指出堆栈区的某个单元的偏移地址。CS代码段寄存器,用于指出存放程序的代码段的段地址。DS数据段寄存器,用于指出存放数据的数据段的段
4、地址。ES附加段寄存器,用于指出存放附加数据的附加段的段地址。SS堆栈段寄存器,用于指出堆栈区的堆栈段的段地址。段寄存器控制寄存器溢出标志方向标志中断标志陷阱标志符号标志零标志辅助进位标志奇偶标志进位标志IP指令指针寄存器:用来存放代码段中的偏移地址,指出当前正在执行指令的下一条指令所在单元的偏移地址。FLAGS标志寄存器:其中的某位代表CPU的一个标志,最低位为D0,最高位为D15。8086CPU的标志寄存器共有9个标志,分别为6条件码标志和3控制标志。其含义如下:在DEBUG调试环境下以字母缩写的形式表示各个标志位的状态。进入DEBUG后,用R命
5、令查看寄存器状态时,可以看到除了陷阱标志以外的标志位的状态。如表2-1所示。标志名标志值为1值为0进位标志CFCYNC符号标志SFNGPL零标志ZFZRNZ溢出标志OFOVNV辅助进位标志AFACNA奇偶标志PFPEPO方向标志DFDNUP中断标志IFEIDI例1两个二进制数相加运算,有关标志位自动发生变化。10011010+0100101111100101CPU会自动地把标志位设为:CF=0,SF=1,ZF=0,OF=0,即无进位,结果为负数,结果不为0,没有溢出。练习:写出下列二进制运算的结果以及标志位的变化:(1)10101110+001100
6、11(2)11001101-101000112.2.280X86寄存器组Intel8086、80286都是16位的寄存器。从80386开始,寄存器扩展为32位。2.3内存储器2.3.1物理地址与逻辑地址1地址CPU对内存的访问是通过地址总线进行的,地址总线的每一个二进制组态对应一个存储单元,可作为该存储单元的地址。在80X86系统中一个实际的存储单元只存放8位二进制数,称为字节单元。地址位数与存储空间有如下的关系:若系统只有1根地址线A0:则A0上有两个不同的信号0和1,可以表示0号和1号两个存储单元。若系统有2根地址线A1、A0:则有四个不同的信号
7、组合00、01、10、11,可以表示0号~3号四个存储单元。若系统有10根地址线A9~A0:则有0号~1023号不同组合,可以表示1024个存储单元,寻址空间达到1KB。B(Byte)表示字节单元。可以看出,若地址位数为n,则地址空间的大小为2n个存储单元。2.物理地址物理地址是内存单元的真实地址。存储单元的物理地址是唯一的。Intel8086CPU有20根地址线,因此其存储空间可达220=1M字节单元。在20位地址线的存储空间中采用十六进制表示的物理地址范围是00000H~FFFFFH。3.逻辑地址逻辑地址是用户编程时使用的地址,分为段地址和偏移地
8、址两部分。在8086汇编语言中,把内存地址空间划分为若干逻辑段,每段由一些存储单元构成。用段地址指出是哪一段
此文档下载收益归作者所有