东北大学汇编语言第03章微型计算机的结构.ppt

上传人:本田雅阁 文档编号:3399646 上传时间:2019-08-21 格式:PPT 页数:42 大小:378.51KB
返回 下载 相关 举报
东北大学汇编语言第03章微型计算机的结构.ppt_第1页
第1页 / 共42页
东北大学汇编语言第03章微型计算机的结构.ppt_第2页
第2页 / 共42页
东北大学汇编语言第03章微型计算机的结构.ppt_第3页
第3页 / 共42页
东北大学汇编语言第03章微型计算机的结构.ppt_第4页
第4页 / 共42页
东北大学汇编语言第03章微型计算机的结构.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《东北大学汇编语言第03章微型计算机的结构.ppt》由会员分享,可在线阅读,更多相关《东北大学汇编语言第03章微型计算机的结构.ppt(42页珍藏版)》请在三一文库上搜索。

1、第三章 微型计算机的结构,3.1 微处理器的结构(8086/8088) 3.2 存储器(组织) 3.3 寻址方式 3.4 指令系统(概括),3.1微处理器的结构,3.1.1 8086/8088 CPU的结构 3.1.2 8086/8088的寄存器,3.1.1 8086/8088 CPU的结构,地址形成 与 总线控制,8086/8088总线,ALU总线,暂存寄存器,暂存寄存器,暂存寄存器,EU控制逻辑,指令队列,总线接口单元(BIU),执行单元(EU),CPU执行程序的过程,从内存取指令,执行指令,从内存取指令,执行指令,从内存取指令,执行指令,传统CPU执行指令的过程,现代CPU执行指令的过程

2、,3.1.2 8086/8088CPU的寄存器,8086/8088的寄存器分为4种类型: (1)通用寄存器 (2)指针和变址寄存器 (3)段寄存器 (4)标志寄存器,(1)通用寄存器,(2)指针与变址寄存器,(3)段寄存器,(4)标志寄存器,标志寄存器长度为16位,其中9个位有定义。,CF, Carry Flag, 进位标志, 两数相加,最高位向前的进位; 或两数相减最高位向前的借位, 举例:,AF, Auxiliary Carry Flag, 辅助进位标志, 两数相加,第3位向前的进位; 或两数相减第3位向前的借位, 举例:,0000 1001 0001 1000 0001 0001,+,0

3、000 0000 0000 0001 1111 1111,PF, Parity Flag, 奇偶标志, 两数操作(算术或逻辑),结果的低8位中含有1的位数是偶还是奇. 举例:,1000 0101 1010 1100 1001 1101 1001 0111 1000 0101 1000 0100,AND,结果: PF=1,ZF, Zero Flag, 零标志, 操作结果的为0则ZF为1. 举例:,1111 1111 0000 0001 0000 0000,+,进位1,操作结果为0, ZF=1,SF, Sign Flag, 符号标志, 操作结果的符号位(即最高位的状态). 举例:,1000 010

4、1 1010 1100 1001 1101 1001 0111 1000 0101 1000 0100,AND,结果: SF=1,OF, Overflow Flag, 溢出标志, 算术操作,结果超过目标所能容纳的范围. 举例:,0111 1110 (+126) 0000 0011 (+3) 1000 0001 (-127),+,还有三个标志位: IF, DF, TF暂时不讲,等用到时再讲. 标志位在汇编语言程序设计中非常重要,必须掌握好.,3.2存储器组织,3.2.1 存储器的分段结构 3.2.2 实际地址的产生,3.2.1 存储器的分段结构,00000H,FFFFFH,SS(16位),堆栈段

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

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

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

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

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

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

11、址由基址寄存器BX或BP与变址寄存器SI或DI及一个位移量相加给出, 在指令(码)中给出的是寄存器的名字(编号)及位移量. 举例: MOV AL,BX+SI+1234H ; 指令码:8A803412 假定:BX=1000H,SI=2000H 则: 结果, AL=78H,基变址寻址(2),基变址寻址的格式: BX+SI+位移量 BX+DI+位移量 BP+SI+位移量 BP+DI+位移量 BX+SI BX+DI BP+SI BP+DI 错误的写法: BX+BP SI+DI 位移量的范围: 补码表示的16位 (-32768+32767),存储器寻址方式中的段地址,在存储器寻址方式中只给出了偏移地址,

12、 其段地址是隐含的, 一般情况下, 是DS, 只有特殊情况下是SS. 特殊情况: 在基址寻址和基变址寻址方式下, 基址寄存器是BP. 请看下面的例子:,假定 DS=1000H, SS=2000H, BP=0100H, BX=0100H, 如下指令在执行完后的结果分别是什么?, MOV AX,BX+100H MOV AX,BP+100H,3.3.3 段更换与段跨越(1),当要操作的数据不在隐含段中时, 就需要段更换或段跨越.要寻址的数据在2000H段的0100H单元,而目前没有一个段寄存的值是2000H, 就需要将2000H装入某个段寄存器,如DS,这就是段更换. MOV AX,2000H MO

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1