1、微机原理与接口技术1第三章第三章 80868086寻址方式和寻址方式和指令系统指令系统微机原理与接口技术2微机原理与接口技术33-1 8086的寻址方式的寻址方式微机原理与接口技术4一、一、8086的寻址方式说明的寻址方式说明微机原理与接口技术5二、寻址方式介绍二、寻址方式介绍微机原理与接口技术6例:例:MOV AL,BL ;88 D8MOV AX,1234H;B8 34 12MOV AL,AH;88 E0微机原理与接口技术73、直接寻址(、直接寻址(Direct addressing)当指令中的源操作数或目的操作数,当指令中的源操作数或目的操作数,采用直接给出被访问内存单元的逻辑地采用直接给
2、出被访问内存单元的逻辑地址时,这种寻址方式称直接寻址。址时,这种寻址方式称直接寻址。例例:MOV AX,3E4CH;A1 4C 3EMOV 1234H,AL;A2 34 12微机原理与接口技术8两个概念两个概念MOV AX,3E4CHMOV AX,ES:3E4CHMOV AX,RESULT微机原理与接口技术9如果如果 RESULT EQU 3E4CH;立即数立即数 MOV AX,RESULT如果如果 RESULT DW 3E4CH;符号地址符号地址 MOV AX,RESULT微机原理与接口技术10例例:MOV SI,61A8H MOV DX,SI微机原理与接口技术11例例:MOV CX,36H
3、BXMOV 20BP,AL微机原理与接口技术12 6 6、基址加变址寻址(、基址加变址寻址(Based Indexed addressing)它的它的EA是由三部分组成的,基址寄存是由三部分组成的,基址寄存器器BX或或BP的内容加上变址寄存器的内容的内容加上变址寄存器的内容再加位移量。物理地址由基址寄存器按规再加位移量。物理地址由基址寄存器按规则选择段寄存器,也可以使用段超越。则选择段寄存器,也可以使用段超越。例例:MOV AX,8AHBXSI该例中该例中EA8AHBXSI物理地址物理地址DS10H8AHBXSI微机原理与接口技术13微机原理与接口技术14微机原理与接口技术157、其他、其他A
4、、隐含寻址、隐含寻址 在指令中没有明显的标出,而指定寄存器在指令中没有明显的标出,而指定寄存器参加操作,称之为参加操作,称之为“隐含寻址隐含寻址”。DAAMUL BLPUSH AX POP CX .微机原理与接口技术16微机原理与接口技术17 1.若若CS=A000H,求当前代码段在存储器中的物理地求当前代码段在存储器中的物理地址范围是什么?若数据段位于址范围是什么?若数据段位于52000H到到61FFFH的的64K范围内,问范围内,问DS=?2.若当前若当前SS=3500H,SP=0800H,说明堆栈段在存储说明堆栈段在存储器中的物理地址,若此时入栈器中的物理地址,若此时入栈10个字节,个字
5、节,SP内容内容是什么?若再出栈是什么?若再出栈6个字节,个字节,SP为什么值?为什么值?3.某程序数据段中存放了两个字某程序数据段中存放了两个字1EE5H和和2A8CH,已知(已知(DS)=7850H,数据存放的偏移地址为数据存放的偏移地址为3121H及及285AH。试画图说明它们在存储器中的存放情况。试画图说明它们在存储器中的存放情况。若要读取这两个字,需要对存储器进行几次操作?若要读取这两个字,需要对存储器进行几次操作?微机原理与接口技术18B、I/O(输入(输入/输出)端口寻址(输出)端口寻址(I/O port addressing)当操作数在外部设备时,使用当操作数在外部设备时,使用
6、I/O指令。此时有两种指令。此时有两种不同的寻址方式访问不同的寻址方式访问I/O端口。端口。(1)直接端口寻址方式直接端口寻址方式 (2)采用采用DX寄存器间接寻址方式寄存器间接寻址方式 (3)输入指令中目的操作数可为输入指令中目的操作数可为AL或或AX;输出指令中源操作数可为;输出指令中源操作数可为 AL或或AX。例例:IN AL,25H;E5 25HMOV DX,3E4H OUT DX,AL;EE 微机原理与接口技术19三、三、80868086的指令格式及数据类型的指令格式及数据类型微机原理与接口技术201.1.指令中的操作数指令中的操作数 单操作数指令单操作数指令 指令助记符指令助记符
7、指令的指令的16进制代码进制代码 INC AX 40H INC BX 43H微机原理与接口技术21 双操作数指令双操作数指令 指令助记符指令助记符 指令的指令的16进制代码进制代码 MOV AL,04 B004H MOV AX,04 B80400微机原理与接口技术222.2.指令中的数据类型指令中的数据类型微机原理与接口技术233-2 3-2 指令的机器码表示方法指令的机器码表示方法一、机器语言指令的编码目的和特点一、机器语言指令的编码目的和特点目的:用二进制编码表示各种操作和寻址方式。目的:用二进制编码表示各种操作和寻址方式。特点:没有指令与机器语言的对照表,只有每种特点:没有指令与机器语言
8、的对照表,只有每种 基本指令类型的编码格式。基本指令类型的编码格式。微机原理与接口技术24二、机器语言指令代码的编制二、机器语言指令代码的编制1.1.寄存器之间或寄存器与存储器之间数据传寄存器之间或寄存器与存储器之间数据传 送指令的编码格式送指令的编码格式R/MREGMOD1 0 0 0 1 0 D W15 8 7 6 5 4 3 2 1 0 操作码操作码0:数据从寄存器传出数据从寄存器传出1:数据传至寄存器数据传至寄存器微机原理与接口技术258086 寄存器编码表寄存器编码表REGW=1(字)(字)W=0(字节)(字节)000011001010100111101110AXBXCXDXSPDI
9、BPSIALBLCLDLAHBHCHDHREG段寄存器01110010CSDSESSSR/MREGMOD1 0 0 0 1 0 D W15 8 7 6 5 4 3 2 1 0 操作码操作码0:数据从寄存器传出数据从寄存器传出1:数据传至寄存器数据传至寄存器微机原理与接口技术26MODR/M00000101001110010111011100011011BX+SIBX+DIBP+SIBP+DI SIDID16(直接地址)BXBX+SI+D8BX+DI+D8BP+SI+D8BP+DI+D8 SI+D8DI+D8BP+D8BX+D8BX+SI+D16BX+DI+D16BP+SI+D16BP+DI+D
10、16 SI+D16DI+D16BP+D16BX+D16W=0W=1ALAXCLCXDLDXBLBXAHSPCHBPDHSIBHDIR/MREGMOD1 0 0 0 1 0 D W15 8 7 6 5 4 3 2 1 0 操作码操作码0:数据从寄存器传出数据从寄存器传出1:数据传至寄存器数据传至寄存器微机原理与接口技术272.2.立即数寻址指令的编码立即数寻址指令的编码3.3.包含段寄存器的指令的编码包含段寄存器的指令的编码4.4.段超越前缀指令的编码段超越前缀指令的编码微机原理与接口技术28微机原理与接口技术29微机原理与接口技术30微机原理与接口技术31存存储储器器通用寄存器通用寄存器AXA
11、HBXALCXBHDXBLSICHDICLSPDHBPDL立即数立即数 段寄存器段寄存器CS,DS,ES,SS微机原理与接口技术32微机原理与接口技术33微机原理与接口技术34微机原理与接口技术353)XLAT 换码指令换码指令指令格式为:指令格式为:XLAT 功能功能bxalal例:查表求例:查表求n的平方。的平方。n:0-91、将、将09的平方表建立在偏移地址的平方表建立在偏移地址为为2000H的内存中,如图。的内存中,如图。2、查表查表 微机原理与接口技术36微机原理与接口技术37微机原理与接口技术38微机原理与接口技术39微机原理与接口技术40微机原理与接口技术41微机原理与接口技术4
12、2 微机原理与接口技术43微机原理与接口技术44微机原理与接口技术45微机原理与接口技术46微机原理与接口技术47微机原理与接口技术48微机原理与接口技术49微机原理与接口技术50转移指令转移指令循环控制循环控制过程调用过程调用中断控制中断控制微机原理与接口技术51微机原理与接口技术52微机原理与接口技术53微机原理与接口技术54 例例3-87 3-87 求求ALAL和和BLBL寄存器中的两数之寄存器中的两数之 和,若有进位,则和,若有进位,则AHAH置置1,1,否则否则AHAH清清0 0微机原理与接口技术55微机原理与接口技术56P111 P111 例例3-89 3-89 设某个学生的英语成
13、绩已存放在设某个学生的英语成绩已存放在ALAL寄存寄存器中,若低于器中,若低于6060分,则打印分,则打印F(FAIL);F(FAIL);若高于或等于若高于或等于8585分,则打印分,则打印G G(GOODGOOD);当在当在6060分和分和8484分之间时,打印分之间时,打印P(PASS)P(PASS)。CMP AL,60CMP AL,60JB FAILJB FAILCMP AL,85CMP AL,85JAE GOODJAE GOODMOV AL,PMOV AL,PJMP PRINTJMP PRINTFAIL:FAIL:MOV AL,FMOV AL,FJMP PRINTJMP PRINTGO
14、OD:GOOD:MOV AL,GMOV AL,GPRINT:PRINT:微机原理与接口技术57微机原理与接口技术58微机原理与接口技术59微机原理与接口技术60微机原理与接口技术61(1)(1)中断相关概念中断相关概念什么是中断?什么是中断?中断源及其分类中断源及其分类中断向量及中断向量表中断向量及中断向量表(2)(2)中断指令中断指令 INT n INTO 溢出中断指令溢出中断指令 IRET微机原理与接口技术62微机原理与接口技术63微机原理与接口技术64微机原理与接口技术65本章小结本章小结 在这一章中我们讨论了寻址方式和指令系统的在这一章中我们讨论了寻址方式和指令系统的概念,详细介绍了概
15、念,详细介绍了80868086的各种寻址方式和指令系统的各种寻址方式和指令系统中的几大类指令。中的几大类指令。重点掌握:重点掌握:1.1.寻址方式的概念及各种寻址方式得到操作数地寻址方式的概念及各种寻址方式得到操作数地址的过程;址的过程;2.2.常用常用80868086指令的形式及使用方法。指令的形式及使用方法。微机原理与接口技术66本章作业本章作业(一一)1.已知:已知:DS=1000H,BX=0200H,SI=02H,内存内存10200H10205H单元的内容分单元的内容分别为别为10H,2AH,3CH,46H,59H,6BH。下列每条指令执行完后。下列每条指令执行完后AX的内容各是什的内
16、容各是什么?么?(1)MOV AX,0200H (4)MOV AX,3BX (6)MOV AX,2BX+SI2.设设DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,数据段中变量名为数据段中变量名为VAL的偏移地址值为的偏移地址值为0030H,试说明下列源操试说明下列源操作数字段的寻址方式是什么?物理地址值是多少?作数字段的寻址方式是什么?物理地址值是多少?(2)MOV AX,VAL (4)MOV AX,ES:BX (8)MOV AX,VALBPSI3.写出下列指令的机器码写出下列指令的机器码(1)MOV AL,CL
17、(2)MOV BX+100H,3150H微机原理与接口技术67本章作业本章作业(二二)1 1指出下列指令中哪些是错误的,错在何处?指出下列指令中哪些是错误的,错在何处?(1)MOV DL,AX (3)MOV DS,0200H (5)MOV IP,0FFH(7)MOV AX,BXBP (9)MOV DL,SIDI(11)MOV AL,OFFSET TABLE (13)IN BL,05H2 2 在数据段中有两个相邻的字节数据在数据段中有两个相邻的字节数据2BH2BH和和F5H,F5H,编程编程实现下列操作。实现下列操作。(1)把它们当成带符号数相加后,结果存到把它们当成带符号数相加后,结果存到RESULT单元中;单元中;(2)把它们当成无符号数相乘后,结果存到把它们当成无符号数相乘后,结果存到RESULT单元中。单元中。3 3 编程将编程将AXAX寄存器中的内容以相反的次序传送到寄存器中的内容以相反的次序传送到 DXDX寄存器中,并要求寄存器中,并要求AXAX中的内容不被破坏,然后中的内容不被破坏,然后统计统计DXDX寄存器中寄存器中1 1的个数。的个数。