null第三章 微型计算机的结构第三章 微型计算机的结构3.1 微处理器的结构(8086/8088)
3.2 存储器(组织)
3.3 寻址方式
3.4 指令系统(概括)3.1微处理器的结构3.1微处理器的结构3.1.1 8086/8088 CPU的结构
3.1.2 8086/8088的寄存器3.1.1 8086/8088 CPU的结构3.1.1 8086/8088 CPU的结构地址形成
与
总线控制8086/8088总线ALU总线暂存寄存器暂存寄存器暂存寄存器EU控制逻辑指令队列总线接口单元(BIU)执行单元(EU)CPU执行程序的过程CPU执行程序的过程 从内存取指令执行指令从内存取指令执行指令从内存取指令执行指令传统CPU执行指令的过程现代CPU执行指令的过程3.1.2 8086/8088CPU的寄存器3.1.2 8086/8088CPU的寄存器8086/8088的寄存器分为4种类型:
(1)通用寄存器
(2)指针和变址寄存器
(3)段寄存器
(4)标志寄存器(1)通用寄存器(1)通用寄存器(2)指针与变址寄存器(2)指针与变址寄存器(3)段寄存器(3)段寄存器(4)标志寄存器(4)标志寄存器标志寄存器长度为16位,其中9个位有定义。
nullCF, Carry Flag, 进位标志, 两数相加,最高位向前的进位; 或两数相减最高位向前的借位, 举例:nullAF, Auxiliary Carry Flag, 辅助进位标志, 两数相加,第3位向前的进位; 或两数相减第3位向前的借位, 举例:0000 1001
0001 1000
0001 0001+0000 0000
0000 0001
1111 1111-nullPF, Parity Flag, 奇偶标志, 两数操作(算术或逻辑),结果的低8位中含有1的位数是偶还是奇. 举例:1000 0101 1010 1100
1001 1101 1001 0111
1000 0101 1000 0100AND结果: PF=1nullZF, Zero Flag, 零标志, 操作结果的为0则ZF为1. 举例:1111 1111
0000 0001
0000 0000
+进位1操作结果为0, ZF=1nullSF, Sign Flag, 符号标志, 操作结果的符号位(即最高位的状态). 举例:1000 0101 1010 1100
1001 1101 1001 0111
1000 0101 1000 0100AND结果: SF=1nullOF, Overflow Flag, 溢出标志, 算术操作,结果超过目标所能容纳的范围. 举例:0111 1110 (+126)
0000 0011 (+3)
1000 0001 (-127)+null 还有三个标志位: IF, DF, TF暂时不讲,等用到时再讲.
标志位在汇编语言程序设计中非常重要,必须掌握好.3.2存储器组织3.2存储器组织3.2.1 存储器的分段结构
3.2.2 实际地址的产生3.2.1 存储器的分段结构3.2.1 存储器的分段结构00000HFFFFFHSS(16位)堆栈段:0000B→DS(16位)数据段:0000B→ES(16位)附加段:0000B→CS(16位)代码段:0000B→3.2.2 实际地址的产生3.2.2 实际地址的产生举例:CS=9482, IP=2350, 实际地址为:
1001 0100 1000 0010
0010 0011 0101 0000
1001 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.
(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=>AX
在该指令中, AL和AX并未给出.2.立即寻址2.立即寻址指令要操作的数据包含在指令码中.例: MOV AX,1234H 其指令码为B83412. 3.寄存器直接寻址3.寄存器直接寻址在指令(码)给出的寄存器的名字(编号), 要操作的数据在该寄存中.
INC CX ; 指令码 41
INC DX ; 指令码 42
INC BX ; 指令码 43
INC SP ; 指令码 44
INC BP ; 指令码 454. 存储器寻址4. 存储器寻址 在存储器寻址方式中, 要寻址的数据位于存储器(内存)中, 在指令中是直接或间接的给出的存储器操作数的地址.
存储器寻址包括:
①存储器直接寻址
②寄存器间接寻址
③基址寻址
④变址寻址
⑤基变址寻址 ①存储器直接寻址(1)①存储器直接寻址(1) 在存储器直接寻址中, 指令直接给出的是操作数在内存中存放的地址. 例如: MOV AL,[1000H]; 指令码: A00010
MOV BX,[1000H]; 指令码: 8B1E0010
执行结果? 在存储器直接寻址中, 指令直接给出的是操作数在内存中存放的地址. 例如: MOV AL,[1000H]; 指令码: A00010
MOV BX,[1000H]; 指令码: 8B1E0010
执行结果?
AL=34H
BX=1234H①存储器直接寻址(2)②寄存器间接寻址(1)②寄存器间接寻址(1) 在寄存器间接寻址中, 操作数位于位于内存中, 操作数的地址位于某个寄存器中, 在指令(码)中给出的是该寄存器的名字(编号). 举例:
MOV AL,[BX] ;指令码:8A07
MOV AX,[SI] ;指令码:8B04
假定 BX=1001H, SI=1000H
则: 结果, AL=12H, AX=1234H ②寄存器间接寻址(2)②寄存器间接寻址(2)可以用于寄存器间接寻址的寄存器有:
BX [BX]
SI [SI]
DI [DI] 在基址寻址中, 操作数位于位于内存中, 操作数的地址由基址寄存器BX或BP与一个位移量相加给出, 在指令(码)中给出的是该基址寄存器的名字(编号)及位移量. 举例:
MOV AL,[BX+1234H] ;指令码:8A873412
假定 BX=1000H
则: 结果, AL=78H③基址寻址(1)③基址寻址(2)③基址寻址(2)基址寻址的格式:
[BX+位移量]
[BP+位移量]
位移量的范围: 补码表示的16位
(-32768~+32767) 在变址寻址中, 操作数位于位于内存中, 操作数的地址由变址寄存器SI或DI与一个位移量相加给出, 在指令(码)中给出的是该变址寄存器的名字(编号)及位移量. 举例:
MOV AL,[SI+1234H] ;指令码:8A843412
假定 SI=1000H
则: 结果, AL=78H
④变址寻址(1)④变址寻址(2)④变址寻址(2)变址寻址的格式:
[SI+位移量]
[DI+位移量]
位移量的范围: 补码表示的16位
(-32768~+32767)
⑤基变址寻址(1)⑤基变址寻址(1)在基变址寻址中, 操作数位于位于内存中, 操作数的地址由基址寄存器BX或BP与变址寄存器SI或DI及一个位移量相加给出, 在指令(码)中给出的是寄存器的名字(编号)及位移量. 举例:
MOV AL,[BX+SI+1234H] ;
指令码:8A803412
假定:BX=1000H,SI=2000H
则: 结果, AL=78H⑤基变址寻址(2)⑤基变址寻址(2)基变址寻址的格式:
[BX+SI+位移量] [BX+DI+位移量]
[BP+SI+位移量] [BP+DI+位移量]
[BX+SI] [BX+DI] [BP+SI] [BP+DI]
错误的写法: [BX+BP] [SI+DI]
位移量的范围: 补码表示的16位
(-32768~+32767)
存储器寻址方式中的段地址存储器寻址方式中的段地址在存储器寻址方式中只给出了偏移地址, 其段地址是隐含的, 一般情况下, 是DS, 只有特殊情况下是SS.
特殊情况: 在基址寻址和基变址寻址方式下, 基址寄存器是BP.
请看下面的例子:null 假定 DS=1000H, SS=2000H, BP=0100H, BX=0100H, 如下指令在执行完后的结果分别是什么?① MOV AX,[BX+100H]
② MOV AX,[BP+100H]3.3.3 段更换与段跨越(1)3.3.3 段更换与段跨越(1)当要操作的数据不在隐含段中时, 就需要段更换或段跨越.要寻址的数据在2000H段的0100H单元,而目前没有一个段寄存的值是2000H, 就需要将2000H装入某个段寄存器,如DS,这就是段更换.
MOV AX,2000H
MOV DS,AX
MOV BX,0100H
MOV AL,[BX]null 当要操作的数据不在隐含段中时, 就需要段更换或段跨越.要寻址的数据在2000H段的0100H单元,而目前CS段寄存的值是2000H,可在寻址操作数加一段跨越前缀,如CS:,这就是段跨越.
MOV BX,0100H
MOV AL,CS:[BX]3.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)空操作
本文档为【汇编语言 第03章 微型计算机的结构】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。