汇编语言程序设计第03章 微型计算机的结构

上传人:ji****72 文档编号:48553650 上传时间:2018-07-17 格式:PPT 页数:43 大小:580.50KB
返回 下载 相关 举报
汇编语言程序设计第03章 微型计算机的结构_第1页
第1页 / 共43页
汇编语言程序设计第03章 微型计算机的结构_第2页
第2页 / 共43页
汇编语言程序设计第03章 微型计算机的结构_第3页
第3页 / 共43页
汇编语言程序设计第03章 微型计算机的结构_第4页
第4页 / 共43页
汇编语言程序设计第03章 微型计算机的结构_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《汇编语言程序设计第03章 微型计算机的结构》由会员分享,可在线阅读,更多相关《汇编语言程序设计第03章 微型计算机的结构(43页珍藏版)》请在金锄头文库上搜索。

1、汇编语言程序设计汇编语言程序设计齐志儒 高福祥 主编 东北大学出版社第三章第三章 微型计算机的结构微型计算机的结构3.1 微处理器的结构(8086/8088) 3.2 存储器(组织) 3.3 寻址方式 3.4 指令系统(概括)3.13.1微处理器的结构微处理器的结构3.1.1 8086/8088 CPU的结构 3.1.2 8086/8088的寄存器3.1.1 8086/8088 CPU3.1.1 8086/8088 CPU的结构的结构AHAL BHBL CHCL DHDL BP SP SI DICS SS DS ES IP 内部通信寄存器地址形成 与 总线控制8086/8088总线ALU总线暂

2、存寄存器暂存寄存器暂存寄存器EU控制逻辑指令队列总线接口单元(BIU)执行单元(EU)CPUCPU执行程序的过程执行程序的过程l 从内存取指令执行指令从内存取指令执行指令从内存取指令执行指令传统CPU执行指令 的过程现代CPU执行指令 的过程3.1.2 8086/8088CPU3.1.2 8086/8088CPU的寄存器的寄存器8086/8088的寄存器分为4种类型: (1)通用寄存器 (2)指针和变址寄存器 (3)段寄存器 (4)标志寄存器(1 1)通用寄存器)通用寄存器(2 2)指针与变址寄存器)指针与变址寄存器(3 3)段寄存器)段寄存器(4 4)标志寄存器)标志寄存器l标志寄存器长度为

3、16位,其中9个位有定 义。CF, Carry Flag, 进位标志, 两数 相加,最高位向前的进位; 或两数 相减最高位向前的借位, 举例:1000 00011000 00000000 0001+11000 00001000 00011111 11111AF, Auxiliary Carry Flag, 辅助进 位标志, 两数相加,第3位向前的 进位; 或两数相减第3位向前的 借位, 举例:0000 10010001 10000001 0001+0000 00000000 00011111 1111PF, Parity Flag, 奇偶标志, 两数 操作(算术或逻辑),结果的低8位 中含有1

4、的位数是偶还是奇. 举 例:1000 0101 1010 11001001 1101 1001 01111000 0101 1000 0100AND结果: PF=1ZF, Zero Flag, 零标志, 操作结果 的为0则ZF为1. 举例:1111 11110000 00010000 0000+进位1操作结果为0, ZF=1SF, Sign Flag, 符号标志, 操作结 果的符号位(即最高位的状态). 举例:1000 0101 1010 11001001 1101 1001 01111000 0101 1000 0100AND结果: SF=1OF, Overflow Flag, 溢出标志,

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

6、 :0000BCS(16位)代码段 :0000B3.2.2 3.2.2 实际地址的产生实际地址的产生举例: CS=9482, IP=2350, 实际地址为:1001 0100 1000 00100010 0011 0101 00001001 0110 1011 0111 0000一个实际地址 可以对应多个 逻辑地址.3.3 3.3 寻址方式寻址方式3.3.1 操作数的种类 3.3.2 寻址方式 3.3.3 段跨越与段更换 3.3.4 有效地址的计算时间3.3.1 3.3.1 操作数的种类操作数的种类(1) 立即操作数: 指令要操作的数据在指令代码 中, MOV AL,10H ;指令码B010.

7、(2) 存储器操作数:指令要操作的数据在存储器( 内存)中, MOV AL,1234H; 指令码A03412.(3)寄存器操作数:指令要操作的数据在CPU的 寄存器中, MOV AL,BL; 指令码88D8.(4)I/O端口操作数, IN AL,20H; 指令码E420.3.3.2 3.3.2 寻址方式寻址方式1. 固定寻址 2. 立即寻址 3. 寄存器直接寻址 4. 存储器寻址(存储器直接寻址,寄存器间接寻 址,基址寻址,变址寻址,基变址寻址) 5. 数据串寻址(暂不讲)1. 1. 固定寻址固定寻址指令要操作的数据在指令中并没 有明确给出,但隐含在指令中. 例:MUL BL ; AL*BL=

8、AX在该指令中, AL和AX并未给出.2.2.立即寻址立即寻址l指令要操作的数据包含在指令码中.例: MOV AX,1234H 其指令码为B83412. 3.3.寄存器直接寻址寄存器直接寻址l在指令(码)给出的寄存器的名字(编号), 要 操作的数据在该寄存中.lINC CX ; 指令码 41lINC DX ; 指令码 42lINC BX ; 指令码 43lINC SP ; 指令码 44lINC BP ; 指令码 454. 4. 存储器寻址存储器寻址l 在存储器寻址方式中, 要寻址的数据 位于存储器(内存)中, 在指令中是直接或 间接的给出的存储器操作数的地址.l 存储器寻址包括:存储器直接寻址

9、寄存器间接寻址基址寻址变址寻址基变址寻址 存储器直接寻址存储器直接寻址(1)(1)l 在存储器直接寻址中, 指令直接给出的 是操作数在内存中存放的地址. 例如: MOV AL,1000H; 指令码: A00010lMOV BX,1000H; 指令码: 8B1E0010l执行结果?l 在存储器直接寻址中, 指令直接给出的是 操作数在内存中存放的地址. 例如: MOV AL,1000H; 指令码: A00010 MOV BX,1000H; 指令码: 8B1E0010 执行结果? AL=34H BX=1234H存储器直接寻址(2)寄存器间接寻址寄存器间接寻址(1)(1)l 在寄存器间接寻址中, 操作

10、数位于位 于内存中, 操作数的地址位于某个寄存器 中, 在指令(码)中给出的是该寄存器的名 字(编号). 举例:lMOV AL,BX ;指令码:8A07lMOV AX,SI ;指令码:8B04l假定 BX=1001H, SI=1000Hl则: 结果, AL=12H, AX=1234H 寄存器间接寻址寄存器间接寻址(2)(2)l可以用于寄存器间接寻址的寄存器有:l BX BXl SI SIl DI DIl在基址寻址中, 操作数位于位于内存中, 操 作数的地址由基址寄存器BX或BP与一个位 移量相加给出, 在指令(码)中给出的是该基 址寄存器的名字(编号)及位移量. 举例:lMOV AL,BX+1

11、234H ;指令码:8A873412l假定 BX=1000Hl则: 结果, AL=78H基址寻址(1)基址寻址基址寻址(2)(2)l基址寻址的格式:lBX+位移量lBP+位移量l位移量的范围: 补码表示的16位l(-32768+32767)l 在变址寻址中, 操作数位于位于内存中, 操作数的地址由变址寄存器SI或DI与一个位 移量相加给出, 在指令(码)中给出的是该变址 寄存器的名字(编号)及位移量. 举例: MOV AL,SI+1234H ;指令码:8A843412 假定 SI=1000H 则: 结果, AL=78H 变址寻址(1)变址寻址变址寻址(2)(2)l变址寻址的格式:lSI+位移量

12、lDI+位移量l位移量的范围: 补码表示的16位l(-32768+32767)基变址寻址基变址寻址(1)(1)l在基变址寻址中, 操作数位于位于内存中, 操作 数的地址由基址寄存器BX或BP与变址寄存器 SI或DI及一个位移量相加给出, 在指令(码)中给 出的是寄存器的名字(编号)及位移量. 举例:lMOV AL,BX+SI+1234H ;l指令码:8A803412l假定:BX=1000H,SI=2000Hl则: 结果, AL=78H基变址寻址基变址寻址(2)(2)l基变址寻址的格式:lBX+SI+位移量 BX+DI+位移量lBP+SI+位移量 BP+DI+位移量lBX+SI BX+DI BP

13、+SI BP+DIl错误的写法: BX+BP SI+DIl位移量的范围: 补码表示的16位l(-32768+32767)存储器寻址方式中的段地址存储器寻址方式中的段地址l在存储器寻址方式中只给出了偏移地址, 其段地址是隐含的, 一般情况下, 是DS, 只 有特殊情况下是SS.l特殊情况: 在基址寻址和基变址寻址方式 下, 基址寄存器是BP.l请看下面的例子:假定 DS=1000H, SS=2000H, BP=0100H, BX=0100H, 如下指令在 执行完后的结果分别是 什么? MOV AX,BX+100H MOV AX,BP+100H3.3.3 3.3.3 段更换与段跨越段更换与段跨越(

14、1)(1)l当要操作的数据不在隐含段中时, 就需要段更 换或段跨越.要寻址的数据在2000H段的0100H 单元,而目前没有一个段寄存的值是2000H, 就 需要将2000H装入某个段寄存器,如DS,这就是 段更换.l MOV AX,2000Hl MOV DS,AX l MOV BX,0100Hl MOV AL,BX当要操作的数据不在隐含段中时, 就需 要段更换或段跨越.要寻址的数据在2000H 段的0100H单元,而目前CS段寄存的值是 2000H,可在寻址操作数加一段跨越前缀,如 CS:,这就是段跨越.MOV BX,0100HMOV AL,CS:BX3.3.3 段更换与段跨越(2)3.3.4 3.3.4 有效地址的计算时间有效地址的计算时间3.4 3.4 指令系统指令系统共分为14类92种指令. (1)数据传送 (8)循环控制 (2)算术运算 (9)调用与返回 (3)逻辑运算 (10)BCD调整 (4)移位 (11)输入输出 (5)标志位操作 (12)中断处理 (6)转移 (13)外同步 (7)数据串操作 (14)空操作

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号