《最新微型计算机的结构PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新微型计算机的结构PPT课件.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微型计算机的结构微型计算机的结构3.1微处理器的结构3.1.1 8086/8088 CPU的结构3.1.2 8086/8088的寄存器(4)标志寄存器标志寄存器长度为16位,其中9个位有定义。CF,Carry Flag,进位标志,两数相加,最高位向前的进位;或两数相减最高位向前的借位,举例:1000 00011000 00000000 0001+11000 00001000 00011111 11111AF,Auxiliary Carry Flag,辅助进位标志,两数相加,第3位向前的进位;或两数相减第3位向前的借位,举例:0000 10010001 10000001 0001+0000 00
2、000000 00011111 1111PF,Parity Flag,奇偶标志,两数操作(算术或逻辑),结果的低8位中含有1的位数是偶还是奇.举例: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 01
3、01 1000 0100AND结果:SF=1OF,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 存储器的分段结构堆栈段(2 字节)16数据段(2 字节)16附加段(2 字节)16代码段(2 字节)1600000HFFFFFHSS(16位)堆栈段:0000BDS(16位)数据段:000
4、0BES(16位)附加段:0000BCS(16位)代码段:0000B3.2.2 实际地址的产生举例:CS=9482,IP=2350,实际地址为:1001 0100 1000 0010 0010 0011 0101 00001001 0110 1011 0111 0000一个实际地址可以对应多个逻辑地址.3.3 寻址方式3.3.1 操作数的种类3.3.2 寻址方式3.3.3 段跨越与段更换3.3.4 有效地址的计算时间3.3.1 操作数的种类 (1)立即操作数:指令要操作的数据在指令代码中,MOV AL,10H;指令码B010.(2)存储器操作数:指令要操作的数据在存储器(内存)中,MOV AL
5、,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=AX 在该指令中,AL和AX并未给出.2.立即寻址指令要操作的数据包含在指令码中。例:MOV AX,1234H 其指令码为B83412.3.寄存器
6、直接寻址u在指令(码)给出的寄存器的名字(编号),要操作的数据在该寄存中.INC CX ;指令码 41 INC DX ;指令码 42 INC BX ;指令码 43 INC SP ;指令码 44 INC BP ;指令码 454.存储器寻址u在存储器寻址方式中,要寻址的数据位于存储器(内存)中,在指令中是直接或间接的给出的存储器操作数的地址.u存储器寻址包括:存储器直接寻址 寄存器间接寻址 基址寻址 变址寻址 基变址寻址 存储器直接寻址(1)u在存储器直接寻址中,指令直接给出的是操作数在内存中存放的地址.例如:MOV AL,1000H;指令码:A00010 MOV BX,1000H;指令码:8B1
7、E0010u执行结果?u在存储器直接寻址中,指令直接给出的是操作数在内存中存放的地址.例如:MOV AL,1000H;指令码:A00010 MOV BX,1000H;指令码:8B1E0010u执行结果?AL=34H BX=1234H存储器直接寻址(2)寄存器间接寻址(1)u在寄存器间接寻址中,操作数位于位于内存中,操作数的地址位于某个寄存器中,在指令(码)中给出的是该寄存器的名字(编号).举例:MOV AL,BX ;指令码:8A07 MOV AX,SI ;指令码:8B04 假定 BX=1001H,SI=1000H 则:结果,AL=12H,AX=1234H 寄存器间接寻址(2)u可以用于寄存器间
8、接寻址的寄存器有:BX BX SI SI DI DI u在基址寻址中,操作数位于位于内存中,操作数的地址由基址寄存器BX或BP与一个位移量相加给出,在指令(码)中给出的是该基址寄存器的名字(编号)及位移量.举例:MOV AL,BX+1234H;指令码:8A873412 假定 BX=1000H 则:结果,AL=78H基址寻址(1)基址寻址(2)u基址寻址的格式:BX+位移量 BP+位移量u位移量的范围:补码表示的16位 (-32768+32767)u在变址寻址中,操作数位于位于内存中,操作数的地址由变址寄存器SI或DI与一个位移量相加给出,在指令(码)中给出的是该变址寄存器的名字(编号)及位移量
9、.举例:MOV AL,SI+1234H;指令码:8A843412 假定 SI=1000H 则:结果,AL=78H 变址寻址(1)变址寻址(2)u变址寻址的格式:SI+位移量 DI+位移量u位移量的范围:补码表示的16位 (-32768+32767)基变址寻址(1)u在基变址寻址中,操作数位于位于内存中,操作数的地址由基址寄存器BX或BP与变址寄存器SI或DI及一个位移量相加给出,在指令(码)中给出的是寄存器的名字(编号)及位移量.举例:MOV AL,BX+SI+1234H;指令码:8A803412 假定:BX=1000H,SI=2000H 则:结果,AL=78H基变址寻址(2)u基变址寻址的格
10、式:BX+SI+位移量 BX+DI+位移量 BP+SI+位移量 BP+DI+位移量 BX+SI BX+DI BP+SI BP+DIu错误的写法:BX+BP SI+DIu位移量的范围:补码表示的16位 (-32768+32767)存储器寻址方式中的段地址u在存储器寻址方式中只给出了偏移地址,其段地址是隐含的,一般情况下,是DS,只有特殊情况下是SS.u特殊情况:在基址寻址和基变址寻址方式下,基址寄存器是BP.u请看下面的例子:假定 DS=1000H,SS=2000H,BP=0100H,BX=0100H,如下指令在执行完后的结果分别是什么?MOV AX,BX+100H MOV AX,BP+100H
11、3.3.3 段更换与段跨越(1)u当要操作的数据不在隐含段中时,就需要段更换或段跨越.要寻址的数据在2000H段的0100H单元,而目前没有一个段寄存的值是2000H,就需要将2000H装入某个段寄存器,如DS,这就是段更换段更换。MOV AX,2000H MOV DS,AX MOV BX,0100H MOV AL,BX 当要操作的数据不在隐含段中时,就需要段更换或段跨越.要寻址的数据在2000H段的0100H单元,而目前CS段寄存的值是2000H,可在寻址操作数加一段跨越前缀,如CS:,这就是段跨越段跨越.MOV BX,0100H MOV AL,CS:BX3.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)空操作结束语结束语谢谢大家聆听!谢谢大家聆听!43
限制150内