1 / 131

微型计算机系统

微型计算机系统. 本课程的任务、目标:. 第二章:微处理器的指令系统. 第二章. 微处理器的指令系统. 第二章:微处理器的指令系统. 教学要求 :. 本章重点介绍 8088/8086 指令系统中 7 种寻址方式和常用指令系统,此内容是 8088/8086 汇编语言编程的重点内容,它们对编程起着至关重要的作用。. 第二章:微处理器的指令系统. 本章主要内容:. 一、 8088/8086 的寻址方式 操作数类型 寻址方式. 二、指令系统 数据传送指令 算术运算指令 逻辑运算指令 移位指令. 转移指令 字符串操作指令 处理器操作指令 中断指令.

rowdy
Download Presentation

微型计算机系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 微型计算机系统

  2. 本课程的任务、目标: 第二章:微处理器的指令系统 第二章 微处理器的指令系统

  3. 第二章:微处理器的指令系统 教学要求: 本章重点介绍8088/8086指令系统中7种寻址方式和常用指令系统,此内容是8088/8086汇编语言编程的重点内容,它们对编程起着至关重要的作用。

  4. 第二章:微处理器的指令系统 本章主要内容: • 一、 8088/8086的寻址方式 • 操作数类型 • 寻址方式 • 二、指令系统 • 数据传送指令 • 算术运算指令 • 逻辑运算指令 • 移位指令 • 转移指令 • 字符串操作指令 • 处理器操作指令 • 中断指令

  5. 第二章:微处理器的指令系统 § 2.1 8088/8086的寻址方式 § 2.1.1 概述 指令:控制计算机操作的基本命令形式 指令组成:有操作码 (OP)和操作数(OPRD )两部分 操作码 ——指示计算机要执行的操作; 操作数 ——指出在指令执行操作过程中所需要的数据; 指令的一般格式:

  6. 第二章:微处理器的指令系统 其中操作码必不可少,操作数可有一个或多个也可没有。 8086/8088的指令系统中,一般为无操作数、单操作数和双 操作数。操作数的存放(来源)有三种。 寻址:指令执行时寻找操作数地址的过程; 寻址方式:寻找操作数存放地址的各种方式。

  7. 第二章:微处理器的指令系统 § 2.1.2 操作数类型 8088/8086指令中的操作数可以分为3种类型: 立即数操作数、寄存器操作数和存储器操作数。 • 1、立即数操作数 • 立即数是作为指令代码的一部分出现在指令中。 • 通常作为源操作数使用。 • 书写形式可以为二进制、八进制、十进制和十六进制数,也可以是一个可求出确定值的表达式。 • 2、寄存器操作数 • 操作数存放在寄存器中,用来参加运算或存放结果。 • 在双操作数指令中,它可以作为源操作数和目的操作数。其书写形式就是寄存器的名称。

  8. 第二章:微处理器的指令系统 目的操作数(OPD):为指令提供操作数据及操作结果的存放位置,它的值是随执行结果而变化的; 源操作数(OPS):只为指令提供操作数据,其值在指令执行过程中是不变的。 例 ADD AX,BX 其中:AX是目的操作数,BX是源操作数, 执行前,AX存放被加数,BX存放加数, 执行后,AX和BX相加的结果存放在AX中。 • 3. 存储器操作数 • 存储器操作数存放在存储器中,其存放的地址出现在指令中; • 其存放的地址应该是物理地址,但段地址是隐含的,一般采用偏移地址EA(或称有效地址)来表示; • 书写形式:假如偏移地址是X,该地址中的内容为Y,则(X)=Y

  9. 第二章:微处理器的指令系统 § 2.1.3 寻址方式 • 寄存器寻址 • 指令所需操作数存放在指令指定的寄存器中。 • 16位操作数时,寄存器可以是:AX、BX、CX、DX、SI、DI、SP、CS、DS、ES、SS和BP ; • 8位操作数时,寄存器可以是:AL、AH、BL、BH、CL、CH、DL和DH。 • 特点:寻址方式速度较快。适用于需要经常存取的操作数 例:MOVAX,BX 把BX的内容传送到AX

  10. 2. 寄存器间接寻址 ◆ 操作数的偏移地址EA在指令指定的寄存器中,即寄存器R的内容为操作数的偏移地址EA,而操作数存放在存储器中。 ◆ 操作数物理地址PA的形成: PA= 段寄存器×16+ EA = 段寄存器×10H+ R ◆ 可作间接寻址的寄存器只能 是:SI、DI、BP、BX;

  11. 第二章:微处理器的指令系统 ◆段寄存器的选择 若指令中指定的寄存器是 BX、DI或 SI,则操作数在当前数据段中,操作数的物理地址为: BX PA=DS ×10H +SI DI 若指令中指定的寄存器是BP,则操作数在当前堆栈段中,操作数的物理地址为: PA= SS ×10H +BP ◆ 寄存器的间接寻址方式可以用于表格处理,执行完一条指令后,只需修改寄存器内容就可取出表格中的下一项,所以,通常将它们称作地址指示器,用于存取存储器数据。

  12. 第二章:微处理器的指令系统 例:MOV  AX,[BX] 指令执行后: AX=3412H

  13. 第二章:微处理器的指令系统 【例2.3】 MOV AX,[BX] ,执行前:AX=6,BX=100H, DS=1000H,(10100H)=60FEH。双操作数指令。 AX是目的操作数地址,其寻址方式为寄存器寻址方式; 源操作数[BX]表示采用寄存器间接寻址方式,BX的内容为源操作数的偏 移地址EA; 源操作数的物理地址为: PA= DS ×10H + BX 执行后:AX=60FEH, BX、DS、(10100H)的内容未变。

  14. 第二章:微处理器的指令系统 【例2.4】 MOV AX,[BP] 执行前:AX=0,BP=50H,SS=2000H,20050H=1A34H 目的操作数地址是AX ; 源操作数[BP]表示使用寄存器间接寻址,BP的内容为源操作数 的偏移地址EA; 源操作数的物理地址: PA=SS ×10H +BP 执行后: AX=1A34H,BP、SS、(20050H)内容未变。

  15. 第二章:微处理器的指令系统 • 3. 寄存器相对寻址(直接变址寻址) 操作数的偏移地址EA是一个基址寄存器或变址寄存器的内容和指令中给出的8位或16位位移量之和; • 基址寄存器有 BX、BP;变址寄存器有 SI 、DI • 操作数物理地址PA的形成 PA= 段寄存器×16+R+X 其中: X为8位或16位的位移量 R为基址寄存器或变址寄存器

  16. 第二章:微处理器的指令系统 • 段寄存器的选择 • 若指令中指定的寄存器是BX、DI或SI,则操作数在当前数据段中,操作数的物理地址为: • BX • PA= DS ×10H + SI + X • DI • 若指令中指定的寄存器是BP,则操作数在当前堆栈段中,操作数的物理地址为: • PA= SS ×10H + BP + X

  17. 寄存器相对寻址 例:MOV   Al,   [BX+5]

  18. 第二章:微处理器的指令系统 【例2.5】MOV AX,NAME[BX] 执行前:AX=0,BX=1000H,DS=2000H,(21100H)=1234H,NAME=100H 目的操作数为AX,采用寄存器寻址方式;源操作数采用寄存器相对寻址方式, NAME为16位位移量的符号地址,故X的值为100H,变址寄存器为BX,所以EA= BX +NAME=1100H, 源操作数的物理地址: PA=DS × 16 +BX+ NAME = 21100H 执行后:AX=1234H,BX、DS、 (20010H)内容未变。 指令 MOV AX,NAME[BX]也可写为:MOV AX,[BX+NAME]格式

  19. 第二章:微处理器的指令系统 【例2.6】 ADD 5[BP],BX 执行前:BX=40H,BP=30H,SS=2000H,(20035H)=50H。 目的操作数采用寄存器相对寻址方式,其偏移地址EA= BP +5; 源操作数为BX采用寄存器寻址方式; 目的操作数的物理地址PA为堆栈段寄存器SS的内容左移4位与 EA相加: PA=SS × 16 + BP + 5 =20000H+30H+5 =20035H 执行后:(20035H)=90H,BX、BP、SS未变。

  20. 第二章:微处理器的指令系统 4. 基址变址寻址 操作数在存储器中,操作数的偏移地址EA是一个基址寄存器和一个变址寄存器之和,两个寄存器均由指令指定。 • 基址寄存器为BX和BP,变址寄存器有 SI 、DI。 • 操作数的偏移地址EA • BX + SI • BX + DI • EA= • BP + SI • BP + DI

  21. 第二章:微处理器的指令系统 • 操作数物理地址PA的形成 PA= 段寄存器×16+ BR+ IR 若选用BX作为基址寄存器,操作数的物理地址PA为: SI PA= DS ×10H + BX + DI 若选用BP作为基址寄存器,操作数的物理地址PA为: SI PA= SS ×10H + BP + DI

  22. 第二章:微处理器的指令系统 例:MOVAX,[BX][SI] 或 MOVAX,[BX+SI] 设:(DS)=5000H (BX)=2000H (SI)=0006H 有效地址EA=2000H+0006H =2006H 物理地址=5000H×10H+ 2006H=52006H 执行结果:AX=0AB78H

  23. 第二章:微处理器的指令系统 【例2.7】 MOV AX,[BX][DI] 执行前:BX=2000H,DI=0002H,DS=3000H,(32002H)=1AFEH 源操作数采用基址变址寻址,变址寄存器选用了DI,基址 寄存器选用了BX,故源操作数的物理地址: PA=(DS)左移4位+BX+DI=32002H,操作数为(32002H)=1AFEH 执行后:AX=1AFEH,BX、DI、DS、(32002H)内容未变。 【例2.8】MOV [BP+SI],CX 执行前:SS=1000H,BP=300H,SI=50H,CX=1234H,(10350H)=0FFFFH 目的操作数采用基址变址寻址方式,基址寄存器选用了BP, 故目的操作数的物理地址: PA=(SS)左移4位+BP+SI =10350H; 执行后:(10350H)=1234H,BP、SI、CX的内容不变。

  24. 第二章:微处理器的指令系统 5. 相对基址加变址寻址 操作数的偏移地址EA是指令中指定的基址寄存器内容、变址寄存器内容及8位或16位位移量X三项相加之和; • 操作数的偏移地址EA BX + SI +X BX + DI+X BP + SI+X BP + DI+X EA = • 操作数物理地址PA的形成 • PA= 段寄存器×16+ BR+ IR +X

  25. 第二章:微处理器的指令系统 • 若选用BX作为基址寄存器,操作数的物理地址PA为: • SI • PA= DS ×10H + BX + +X • DI • 若选用BP作为基址寄存器,操作数的物理地址PA为: • SI • PA= SS ×10H + BP + +X • DI 【例2.9】 MOV AX,80[BX+SI] 执行前:AX=30H,BX=1000H,SI=100H,DS=3000H,(31180H)=1234H 源操作数采用相对基址加变址寻址,由于选用BX作基址寄存 器,所以其物理地址: PA=(DS)左移4位+BX+SI+80H=31180H, 操作数为(31180H)=1234H。 执行后:AX=1234H,BX、SI、DS、(31180H)未变。

  26. 第二章:微处理器的指令系统 【例2.10】MOV -6[BP+DI],AX 执行前:AX=33H,BP=10H,DI=48H,SS=4000H,(40052H)=900H 目的操作数采用相对基址加变址寻址方式,基址寄存器选用了BP,段寄存 器就是SS,所以,其物理地址PA =(SS) ×+BP+DI+(-6)=40052H 执行后:(40052H)=33H,BP、DI、SS、AX内容均未改变。 • 6. 立即寻址 操作数直接放在指令中,即操作数的存放地址就是指令操作码的下一单 元的地址,其内容为操作数n。 • 操作数n称为立即操作数可以是8位或16位二进制补码表示的常数, 若是16位,则高位字节存放在高地址单元中,低位字节存放在低地址单元中。

  27. 第二章:微处理器的指令系统 例 MOV  AX,1234H • 该方式不能用在单操作数指令中,不能用于目的操作数字段,只能用于源操作数字段。 【例2.11】 MOV CL,10 目的操作数地址是CL; 源操作数是立即数10,其地址是指令操作码的下一单 元。源操作数10紧跟着指令操作符存放在代码段中。 该指令的功能是将立即数10送入CL寄存器中。 【例2.12】 MOV AX,‘AB’ 目的操作数地址是AX; 源操作数是字母A、B,其地址是指令操作码的下一单元。源操作数‘AB’紧跟着指令操作符存放在代码段中。 该指令的功能是将高地址单元中的字母A的ASCII码送入AH中、低地址单元中的字母B的ASCII码送入AL中。

  28. 第二章:微处理器的指令系统 • 7. 直接寻址 指令操作数字段中存放的是操作数的16位偏移地址EA,即操作数的偏移地址EA与操作码一起存放在代码段中,存放于指令操作码下一字单元中; • 操作数可以存放在数据段,也可以存放在其他段,操作数可以是字或字节。 • 操作数的物理地址由其所在段的寄存器内容左移4位与指令中给出的偏移地址EA相加形成,如图 所示。 • EA可以用符号或数值表示,如果EA为数值,则必须用方括号括起来,而且在方括号前应给出段寄存器名;如果EA用符号表示,则方括号可用可不用。

  29. 第二章:微处理器的指令系统 • 例:MOV AL, DS:[2000H] • 若DS=4000H,则此指令式将数据段中物理地址为42000H 单元的内容传送AL寄存器。

  30. 第二章:微处理器的指令系统 【例2.13】 (1) MOV AX,DS:[2005H] (2) MOV DH,DS:[2005H] 执行前:AX=1,DS=3000H,(32005H)=10H ,(32006H)=20H。 目的操作数 均为寄存器; 源操作数都采用直接寻址方式,在数据段中,其偏移地址为2005H; 执行后:DS、(32005H)字节单元内容未变。 (1) 源操作数为16位的字数据,执行后:AX=2010H。 (2) 源操作数为8位的字节数据,执行后:DH=10H。 【例2.14】MOV AX,BUFA 若BUFA在数据段定义,其偏移地址是1000H,即 BUFA =1000H, 执行前 DS=2000H,AX=222H,(21000H)=1234H。 源操作数采用直接寻址方式, 变量BUFA的偏移地址EA存放于指令操作码 下 一单元中。 指令的功能是将字类型变量BUFA中的内容送入AX之中。 执行后:AX=1234H。

  31. 第二章:微处理器的指令系统 • 直接寻址方式适合于处理单个变量。当需要对某个存放在存储器中的变 • 量进行处理时,可以先用直接寻址方式把该变量取到一个寄存器中, • 例如: • MOV AX, A1 ; A1中内容→AX • MOV BX, A2 ; A2中内容→BX • MOV CX, A3 ; A3中内容→CX • MOV DX, A4+6 ; A4+6中内容→DX

  32. 第二章:微处理器的指令系统 8. 跨段的有关问题 • 7种寻址方式中,除立即数寻址方式和寄存器寻址方式外,其他各种寻址方式的操作数都在除代码段以外的存储区中; • 指令中若不标明段寄存器,就表示操作数在默认的存储段中; • 直接寻址方式的操作数默认在数据段; • 其它4种寻址方式中: • 凡选用寄存器BP作间址寄存器、或基址寄存器时,操作数默认在堆栈段; • 凡选用寄存器BX、SI、DI作间址寄存器、变址寄存器或基址寄存器时, • 操作数默认在数据段; • 否定默认状态,操作数在非约定段时,必须采用跨段前缀指明操作数所在段的段寄存器名。 • 汇编格式:操作码 目的操作数,段寄存器名:源操作数 • “:”之前的段寄存器指明了操作数所在段。

  33. 第二章:微处理器的指令系统 • 跨段前缀的说明: • ;DS左移4位+ BP • ;ES左移4位+ BX • ;SS左移4位+ SI • ;SS左移4位+ DI • 例 : • MOV AX,DS:[BP] • MOV BX,ES:[BX] • MOV CX,SS:[SI] • MOV DX,SS:[DI] 上述指令中若无跨段前缀(DS:、ES:、SS:),则默认状态确定操作数所在的段。此时,第(1)条的源操作数在堆栈段,第(2)、(3)、(4)条的源操作数在数据段。 • 在实际应用中,当要访问某段之中某一单元时,着重考虑的不是其物理地址的计算方法及结果,而是其类型及偏移地址的表示形式。

  34. 第二章:微处理器的指令系统 § 2.2 指 令 系 统 808/8086指令系统有92种基本指令。按功能可分为6大类: • 数据传送类指令 • 算术运算类指令 • 逻辑运算和移位类指令 • 串操作类指令 • 控制转移类指令 • 处理器控制类指令 § 2.2.1 数据传送指令 数据传送指令用来实现寄存器和存储器间的字节或字的数据传送。 包括: • 通用数据传送指令 • 输入/输出数据传送指令 • 地址传送指令 • 状态标志位传送指令

  35. 第二章:微处理器的指令系统 • 1. 通用数据传送指令 • (1) 数据传送指令 MOV • 格式:MOV OPD,OPS • 功能:OPD是目的操作数,OPS是源操作数。该语句的功能 • 是将源操作数送至目的地址中,即 OPS → OPD 。 • MOV 指令可以在CPU内或CPU和存储器之间传送字或字节。 • 传送的信息可以有如下7种形式: (1) 寄存器到寄存器: MOV AX,BX ;将BX的内容送到AX中。 (2) 立即数到寄存器 MOV AX,03H ;将立即数03H送到AX中。 (3) 立即数到存储单元:必须用PTR确定操作数类型 MOV BYTE PRT [2000H],12H将立即数12H送到(2000H)中。

  36. 第二章:微处理器的指令系统 • (4) 存储单元到寄存器 • MOV AX,Y[BP][SI] ;将地址为(SS) ×16+(BP)+(SI)+位移 • 量Y的存储单元的内容送到AX中。 • (5) 寄存器到存储单元 • MOV TABLE,AX ;将寄存器AX中的内容送到TABLE存储 • 单元中。 • (6) 寄存器或存储单元到除CS外的段寄存器 • MOV DS,DATA;将DATA的内容送到DS中。 • (7) 段寄存器到寄存器或存储单元 • MOV AX,DS ;将段寄存器的内容送到AX中。

  37. 第二章:微处理器的指令系统 使用MOV指令时要注意以下一些问题: (1) 不允许在两个存储单元之间直接传送数据。 (2) 不允许在两个段寄存器之间直接传送数据。 (3) 不允许用立即数直接为段寄存器赋值。 (4) 不影响标志位。 (5) 段寄存器CS及立即数不能作为目标操作数; (6) 传送数据的类型必须匹配;

  38. 第二章:微处理器的指令系统 MOV指令中各类数据的传送关系

  39. 第二章:微处理器的指令系统 • (2) 堆栈操作指令 • 堆栈是内存中的一个特殊存储区(RAM区),用于数据的保存; • 堆栈中的数据只能通过堆栈的一端进行存取,这一端称为“栈顶”; • 堆栈数据总是通过栈顶进行存取,栈顶指针用SP寄存器表示; • 堆栈操作的原则为“先进后出”或“后进先出”; • 堆栈操作必须以“字”为单位进行; • 堆栈中的数据在堆栈段中从地址高端向低端存放,称为向下生长型; • 堆栈操作指令包括入栈指令PUSH和出栈指令POP: ①入栈指令 PUSH 格式:PUSH OPS 执行的操作:(OPS)→(SP-1)(SP-2) SP-2→SP 功能:将寄存器、段寄存器或存储器中的一个字数据压入堆栈中。

  40. SS→ AX SS→ ┆ 04 F8 ┆ 0FFEH 0FFFH 1000H F8 ┆ 04 0FFEH 0FFFH 1000H ┆ XX XX 第二章:微处理器的指令系统 【例2.15】 PUSH AX 执行后:( 0FFEH)=04F8H,AX的 内容不变。堆栈情况如图所示。 执行前:AX = 04F8H,SP =1000H SP→ SP→

  41. SS→ SS→ AX ┆ ┆ 04 F8 SP→ SP→ F8 F8 0FFEH 0FFFH 1000H 0FFEH 0FFFH 1000H 04 04 XX XX 第二章:微处理器的指令系统 ② 出栈指令 POP 格式:POP OPD。 执行的操作: OPD ← (SP+1 , SP ), SP ← SP +2 功能:将堆栈栈顶内容弹入寄存器、段寄存器或存储器中。 【例2.16】 POP AX 执行前:AX=1111H 执行后:AX=04F8H SP→

  42. 第二章:微处理器的指令系统 • 几点说明: • PUSH指令的操作数不能是“立即数”,POP指令的操作数不能是段寄存器CS。 • PUSH和POP指令都不影响标志位。 • 堆栈操作中,当多个数据暂存时,PUSH进入数据的顺序与POP弹出的顺序应相反。 【例2.17】依次用堆栈保存AX、BX、CX、DX寄存器的内容,然后再将 它们复原。 • POP DX • POP CX • POP BX • POP AX • PUSH AX • PUSH BX • PUSH CX • PUSH DX • :

  43. 第二章:微处理器的指令系统 (3) 交换指令与换码指令 ① 交换指令 XCHG 格式: XCHG OPD, OPS 执行的操作:OPS OPD 功能:将两个操作数的内容互换 • 可在累加器、通用寄存器或存储器之间相互交换,两个存储器间不能直接交换,也不允许使用段寄存器。 • 可以是字节或字操作,执行结果不影响标志位。 例: XCHG AX,[2000H] 指令执行前 AX=01F0H、DS=F000H、(F2000H)=4AB7H 功能为交换AX寄存器和2000H地址单元的内容; 指令执行后 AX=4AB7H、(F2000H)=01F0H。

  44. 第二章:微处理器的指令系统 【例2.18】写出使两个内存单元NUM1和NUM2的内容互换的指令。 由于XCHG指令不允许同时对两个存储单元进行操作,必须借助于一个通用寄存器AX。先把NUM1中的数据传送到AX,再将AX中的内容与 NUM2进行交换。 • 程序为:MOV AX , NUM1 • XCHG AX , NUM2 • MOV NUM1 , AX ②换码指令 XLAT 格式:XLAT或 XLAT OPR ,OPR为表首址; 执行的操作:AL DS:( BX+AL ) 功能:将BX寄存器内容加上AL寄存器内容作为操作数的偏移地址,从 数据段中这个地址取一字节内容送AL中。 作用是将一种代码转 换成另一种代码。

  45. 第二章:微处理器的指令系统 • XLAT指令所需的数据表格是预先建立的,当 进行代码转换时,应先将表格的首地址存入BX寄存器,并把需要转换的代码(即相对于首地址的偏移值)存入AL寄存器。 • 该指令的执行结果不影响标志位。 • AL寄存器只有8位,所以表格长度不能超过256个字节。 例:用查表法将10进制数转换成相应的ASCII码。 解:在数据段中定义一个10进制的ASCII码表,设表的名称为ABC,内容为30H、31H、32H、33H、34H、35H、36H、37H、38、39H。 程序段为:MOV AL,5 LEA BX, ABC XLAT

  46. 第二章:微处理器的指令系统 • 2. 地址传送指令 • (1)有效地址送寄存器指令 LEA • 格式:LEA OPD,OPS ; • 功能:该指令把源操作数的偏移地址送到指定的寄存器中; • OPD可以为任一16位通用寄存器,OPS为各种寻址方式的存储器操作数,可以是变量名、标号或地址表达式。 • 例 LEA AX,TABLE ;TABLE为标号 • LEA CX,[BX+SI] • LEA DX,NUM[SI+BX] ;NUM为变量 • LEA指令取的是变量的偏移地址,而不是变量的值。 • 【例2.19】 比较以下两条指令的区别。 • LEA DX , VALUE和 MOV AX , VALUE • 若指令执行前,VALUE的有效地址为100H,以VALUE为符号地址的字单元中内容为3056H。 • 则LEA指令执行后 DX=0100H ;MOV指令执行后 AX=3056H。

  47. 第二章:微处理器的指令系统 • (2) 数据段指针送寄存器指令 LDS • 格式:LDS OPD ,OPS • 功能:把源操作数OPS指定的内存中低地址的两个单元的内容 送到由指令指定的通用寄存器中,高地址两个单元的内容送到DS段寄存器。 • OPD可以为任一16位通用寄存器BX,BP,SI,SI等,OPS为各种寻址方式的存储器操作数; 【例2.20】 LDS SI,[BX] 指令执行前:DS=0C00H、BX=0200H、(0C200H)=2A35H、 (C202H)=4000H。

  48. 第二章:微处理器的指令系统 由BX间接寻址的存储器单元的物理地址 PA=0C200H; 0C200H- 0C201H 单元内容为偏移地址送SI; 0C202H- 0C203H 单元内容为段基地址送DS; 指令执行后:执行后DS=4000H、SI=2A35H,

  49. 第二章:微处理器的指令系统 • (3) 附加段指针送寄存器 LES • 格式:LES OPD,OPS。 • 功能:OPS指定的内存中低地址的两个单元的内容送到由指令指定的通用寄存器中,高地址两个单元的内容送到ES段寄存器中。 【例2.21】 LES DI,[BX] 执行前:DS=B000H、BX=0020H、(B0020H)=0076H、(B0022H)=1F00H 执行后:ES=1F00H、DI=0076H • (4)地址传送指令特点 • 地址传送指令的目的操作数都不为段寄存器,且源操作数寻址方式必须是除立即数方式和寄存器方式以外的其他寻址方式。 • 都不影响标志位。

  50. 第二章:微处理器的指令系统 3. 标志寄存器传送指令 (1) 标志寄存器送AH指令LAHF 格式:LAHF 功能:将标志寄存器FR低八位 送到AH中。 (2)AH 送标志寄存器指令 SAHF 格式:SAHF 功能:将AH的内容送到标志寄存器FR的低8位中。

More Related