东北大学汇编语言第03章微型计算机的结构课件_第1页
东北大学汇编语言第03章微型计算机的结构课件_第2页
东北大学汇编语言第03章微型计算机的结构课件_第3页
东北大学汇编语言第03章微型计算机的结构课件_第4页
东北大学汇编语言第03章微型计算机的结构课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、东北大学汇编语言第03章微型计算机的结构3.1 微处理器的结构(8086/8088)3.2 存储器(组织)3.3 寻址方式3.4 指令系统(概括)东北大学汇编语言第03章微型计算机的结构3.1.1 8086/8088 CPU的结构3.1.2 8086/8088的寄存器东北大学汇编语言第03章微型计算机的结构AHALBHBLCHCLDHDLBPSPSIDICSSSDSESIP内部通信寄存器地址形成与总线控制8086/8088总线ALU总线暂存寄存器暂存寄存器暂存寄存器EU控制逻辑指令队列总线接口单元(BIU)执行单元(EU)东北大学汇编语言第03章微型计算机的结构l 从内存取指令执行指令从内存取

2、指令执行指令从内存取指令执行指令传统CPU执行指令的过程现代CPU执行指令的过程东北大学汇编语言第03章微型计算机的结构8086/8088的寄存器分为4种类型:(1)通用寄存器(2)指针和变址寄存器(3)段寄存器(4)标志寄存器东北大学汇编语言第03章微型计算机的结构东北大学汇编语言第03章微型计算机的结构东北大学汇编语言第03章微型计算机的结构东北大学汇编语言第03章微型计算机的结构l标志寄存器长度为16位,其中9个位有定义。东北大学汇编语言第03章微型计算机的结构CF, Carry Flag, 进位标志, 两数相加,最高位向前的进位; 或两数相减最高位向前的借位, 举例:1000 0001

3、1000 00000000 0001+11000 00001000 00011111 11111东北大学汇编语言第03章微型计算机的结构AF, Auxiliary Carry Flag, 辅助进位标志, 两数相加,第3位向前的进位; 或两数相减第3位向前的借位, 举例:0000 10010001 10000001 0001+0000 00000000 00011111 1111东北大学汇编语言第03章微型计算机的结构PF, Parity Flag, 奇偶标志, 两数操作(算术或逻辑),结果的低8位中含有1的位数是偶还是奇. 举例:1000 0101 1010 11001001 1101 100

4、1 01111000 0101 1000 0100AND结果: PF=1东北大学汇编语言第03章微型计算机的结构ZF, Zero Flag, 零标志, 操作结果的为0则ZF为1. 举例:1111 11110000 00010000 0000+进位1操作结果为0, ZF=1东北大学汇编语言第03章微型计算机的结构SF, Sign Flag, 符号标志, 操作结果的符号位(即最高位的状态). 举例:1000 0101 1010 11001001 1101 1001 01111000 0101 1000 0100AND结果: SF=1东北大学汇编语言第03章微型计算机的结构OF, Overflow

5、Flag, 溢出标志, 算术操作,结果超过目标所能容纳的范围. 举例:0111 1110 (+126)0000 0011 (+3)1000 0001 (-127)+东北大学汇编语言第03章微型计算机的结构 还有三个标志位: IF, DF, TF暂时不讲,等用到时再讲. 标志位在汇编语言程序设计中非常重要,必须掌握好.东北大学汇编语言第03章微型计算机的结构3.2.1 存储器的分段结构3.2.2 实际地址的产生东北大学汇编语言第03章微型计算机的结构堆栈段(2 字节)16数据段(2 字节)16附加段(2 字节)16代码段(2 字节)1600000HFFFFFHSS(16位)堆栈段:0000BDS

6、(16位)数据段:0000BES(16位)附加段:0000BCS(16位)代码段:0000B东北大学汇编语言第03章微型计算机的结构举例:CS=9482, IP=2350, 实际地址为:1001 0100 1000 0010 0010 0011 0101 00001001 0110 1011 0111 0000一个实际地址可以对应多个逻辑地址.东北大学汇编语言第03章微型计算机的结构3.3.1 操作数的种类3.3.2 寻址方式3.3.3 段跨越与段更换3.3.4 有效地址的计算时间东北大学汇编语言第03章微型计算机的结构 (1) 立即操作数: 指令要操作的数据在指令代码中, MOV AL,10

7、H ;指令码B010. (2) 存储器操作数:指令要操作的数据在存储器(内存)中, MOV AL,1234H; 指令码A03412. (3)寄存器操作数:指令要操作的数据在CPU的寄存器中, MOV AL,BL; 指令码88D8. (4)I/O端口操作数, IN AL,20H; 指令码E420.东北大学汇编语言第03章微型计算机的结构1. 固定寻址2. 立即寻址3. 寄存器直接寻址4. 存储器寻址(存储器直接寻址,寄存器间接寻址,基址寻址,变址寻址,基变址寻址)5. 数据串寻址(暂不讲)东北大学汇编语言第03章微型计算机的结构 指令要操作的数据在指令中并没有明确给出,但隐含在指令中. 例: M

8、UL BL ; AL*BL=AX 在该指令中, AL和AX并未给出.东北大学汇编语言第03章微型计算机的结构l指令要操作的数据包含在指令码中.例: MOV AX,1234H 其指令码为B83412. 东北大学汇编语言第03章微型计算机的结构l在指令(码)给出的寄存器的名字(编号), 要操作的数据在该寄存中.lINC CX ; 指令码 41lINC DX ; 指令码 42lINC BX ; 指令码 43lINC SP ; 指令码 44lINC BP ; 指令码 45东北大学汇编语言第03章微型计算机的结构l 在存储器寻址方式中, 要寻址的数据位于存储器(内存)中, 在指令中是直接或间接的给出的存

9、储器操作数的地址.l 存储器寻址包括: 存储器直接寻址 寄存器间接寻址 基址寻址 变址寻址 基变址寻址 东北大学汇编语言第03章微型计算机的结构l 在存储器直接寻址中, 指令直接给出的是操作数在内存中存放的地址. 例如: MOV AL,1000H; 指令码: A00010lMOV BX,1000H; 指令码: 8B1E0010l执行结果?东北大学汇编语言第03章微型计算机的结构l 在存储器直接寻址中, 指令直接给出的是操作数在内存中存放的地址. 例如: MOV AL,1000H; 指令码: A00010MOV BX,1000H; 指令码: 8B1E0010执行结果?AL=34HBX=1234H

10、存储器直接寻址存储器直接寻址(2)东北大学汇编语言第03章微型计算机的结构l 在寄存器间接寻址中, 操作数位于位于内存中, 操作数的地址位于某个寄存器中, 在指令(码)中给出的是该寄存器的名字(编号). 举例:lMOV AL,BX ;指令码:8A07lMOV AX,SI ;指令码:8B04l假定 BX=1001H, SI=1000Hl则: 结果, AL=12H, AX=1234H 东北大学汇编语言第03章微型计算机的结构l可以用于寄存器间接寻址的寄存器有:l BX BXl SI SIl DI DI东北大学汇编语言第03章微型计算机的结构l在基址寻址中, 操作数位于位于内存中, 操作数的地址由基

11、址寄存器BX或BP与一个位移量相加给出, 在指令(码)中给出的是该基址寄存器的名字(编号)及位移量. 举例:lMOV AL,BX+1234H ;指令码:8A873412l假定 BX=1000Hl则: 结果, AL=78H基址寻址基址寻址(1)东北大学汇编语言第03章微型计算机的结构l基址寻址的格式:lBX+位移量lBP+位移量l位移量的范围: 补码表示的16位l(-32768+32767)东北大学汇编语言第03章微型计算机的结构l 在变址寻址中, 操作数位于位于内存中, 操作数的地址由变址寄存器SI或DI与一个位移量相加给出, 在指令(码)中给出的是该变址寄存器的名字(编号)及位移量. 举例:

12、MOV AL,SI+1234H ;指令码:8A843412假定 SI=1000H则: 结果, AL=78H 变址寻址变址寻址(1)东北大学汇编语言第03章微型计算机的结构l变址寻址的格式:lSI+位移量lDI+位移量l位移量的范围: 补码表示的16位l(-32768+32767)东北大学汇编语言第03章微型计算机的结构l在基变址寻址中, 操作数位于位于内存中, 操作数的地址由基址寄存器BX或BP与变址寄存器SI或DI及一个位移量相加给出, 在指令(码)中给出的是寄存器的名字(编号)及位移量. 举例:lMOV AL,BX+SI+1234H ;l指令码:8A803412l假定:BX=1000H,S

13、I=2000Hl则: 结果, AL=78H东北大学汇编语言第03章微型计算机的结构l基变址寻址的格式:lBX+SI+位移量 BX+DI+位移量lBP+SI+位移量 BP+DI+位移量lBX+SI BX+DI BP+SI BP+DIl错误的写法: BX+BP SI+DIl位移量的范围: 补码表示的16位l(-32768+32767)东北大学汇编语言第03章微型计算机的结构l在存储器寻址方式中只给出了偏移地址, 其段地址是隐含的, 一般情况下, 是DS, 只有特殊情况下是SS.l特殊情况: 在基址寻址和基变址寻址方式下, 基址寄存器是BP.l请看下面的例子:东北大学汇编语言第03章微型计算机的结构

14、 假定 DS=1000H, SS=2000H, BP=0100H, BX=0100H, 如下指令在执行完后的结果分别是什么? MOV AX,BX+100H MOV AX,BP+100H东北大学汇编语言第03章微型计算机的结构l当要操作的数据不在隐含段中时, 就需要段更换或段跨越.要寻址的数据在2000H段的0100H单元,而目前没有一个段寄存的值是2000H, 就需要将2000H装入某个段寄存器,如DS,这就是段更换.l MOV AX,2000Hl MOV DS,AX l MOV BX,0100Hl MOV AL,BX东北大学汇编语言第03章微型计算机的结构 当要操作的数据不在隐含段中时, 就需要段更换或段跨越.要寻址的数据在2000H段的0100H单元,而目前CS段寄存的值是2000H,可在寻址操作数加一段跨越

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论