好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

8086指令系统精析解析.doc

36页
  • 卖家[上传人]:s9****2
  • 文档编号:465258286
  • 上传时间:2022-08-17
  • 文档格式:DOC
  • 文档大小:659.50KB
  • / 36 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 8086 指令系统精析3.1 基本数据类型1. IA-32 结构的基本数据类型是字节( 8位)、字(16位)、双字(32 位)、四字 (64位,486中引入的)和双四字(128位,Pentium3中引入的)2. 低字节占用内存中的最低地址,该地址也是此操作数的地址图:P44图3-13. 字、双字、四字的自然边界是偶数编号的地址,字的自然边界是偶数编号的 地址,双字和四字的自然边界地址要分别能被 4和 8除尽4. 数据结构要尽可能在自然边界上对齐5. 对于不对齐的存储访问,处理器要求做两次存储访问操作;而对于对齐的访 问,只要进行一次存储访问操作6. 数字数据类型(学生自学) PPT3.2 8086 的指令格式一、 指令格式Label (标号):mnemonic (助记符)argumentl (参数 1), argument2 (参数 2), argument3 (参数 3)其中:1. 标号是一个标识符,后面跟有冒号2. 助记符是一类具有相同功能的指令操作码的保留名3. 操作数的三个参数是任选的,可以有零到三个操作数,操作数参数的数量取 决于操作码4. 操作数参数可能是文字或数据项的标识符,也可能是寄存器的保留名或在程 序的另一部分声明的赋予数据项的标识符。

      5. 在算术和逻辑指令中存在两个操作数时,右边的操作数是源,左边的操作数是 目 的 例 如 : LOADREG: MOV AX, SUBTOTAL 功 能 是 把 由SUBTOTAL 表示的源操作数传送至 AX 寄存器3.3 8086/8088 指令的操作数寻址方式端口中寻找操作数,操作数能定位在指令中、寄存器中、存储单元中以及 I/O 1.立即数用包含在指令中的操作数作为源操作数,这些操作数即为立即操作数立即数可以是8位或16位,立即数常用来给寄存器或内存单元赋初值MOVAX , 2056H内存结果(AH ) = 20H ( AL ) = 56HMOVAL , 78 H结果(AL ) = 78H2.寄存器操作数操作码操 作 数操作数在寄存器中,指令中指定寄存器名8位操作数,用位寄存器:AH、AL、BH、BL、CH、CL、DH、DL16位操作数,用16位寄存器:AX、BX、CX、DX、SP、BP、SI、DIMOVAX , 2056H执行前:执行后:执行后:MOV(BL) = 12H,(BL) = 78H(AX)=2056HBL , AH(AH) = 78HCS、(AH) = 78HDS、SS、ES▲立即数寻址、寄存器寻址的操作数,不用在取完指令后再到内存中取数。

      ▲以下的中寻址方式,操作数存放在内存中,取完指令后,还需到内存取数指令中给出的是该操作数的地址,包括段地址和偏移地址3.内存操作数▲指令MOV DS: [ DI ] , CL#完成将CL寄存器中的内容传送到以DS为段值,DI为偏移值的内存单元中编程将CL寄存器的内容传送到21000H单元中PPT地址21000H = 2000: 1000H,编程时,DS存放段地址2000H,DI存放偏移地址1000HMOV AX, 2000HMOV DS, AX;(DS) = 2000H;(DI) = 1000H;(21000H) = (CL)MOV DI, 1000HMOV DS: [ DI ], CL结果如图所示:PPT (第一页)内存单元的地址由段地址和偏移地址构成▲为减短指令长度指令中只给出偏移地址的来源,段地址由默认关系给出MOV AL , [ 2000H ] PA= ( DS ) X 10H + 2000H即选择DS寄存器的内容为段地址▲ CPU根据偏移地址给出的方式,按默认关系自动选择段寄存器,获取段值, 由段值、偏移值构成操作数所在内存单元的物理地址指令中用[]给出偏移地址操作数的偏移地址又称有效地址 EA ( Efficient内存Address)▲按给出偏移地址方式的不同,分为以下 5种:直接寻址MOVAL, [ 1000H ]奇存器间接寻址MOVAL, [ BX ]寄存器相对寻址MOVAL, [ BX + 10H ]基址加变址寄存器MOVAL, [ BX + SI ]相对基址加变址寄存器MOVAL, [ BX + SI + 10H ](1)直接寻址方式-位移量存储器操作数的有效地址EA在指令中直接给出。

      例 MOV AL, [ 1000H ]默认段寄存器为DS操作数所在内存单元的物理地址为: PA = ( DS )X 10H + EA例:MOV AX , [ 1000 H]若(DS ) = 2000H内存操作数的物理地址为:PA = ( DS )X 10H +EA = 2000H X 10H + 1000H = 21000H执行后(AX)= 3040H用符号代替数值表示地址,在汇编语言程序中,不直接用数值表示偏移地址, 称符号地址(变量名)例 符号buffer表示一个地址MOV AX , [buffer]或写成 MOV AX , buffer源操作数为buffer指向的内存单元的内容 符号地址(变量名)经汇编连接后,与一个确定的数值地址相对应,可用操作符Offset获取变量的偏移地址故 PA = ( DS )x 10H + Offset buffer指令执行结果 (AX ) = 0B0A H(2) 寄存器间接寻址-基地址存储器操作数的有效地址 EA由寄存器给出,寄存器的内容为操作数的有效地 址可用的寄存器有BX、SI、DI、BP如: MOVAL,[BX ]MOVAH,[SI ]MOVDL,[DI ]MOVDH,[BP ]默认段寄存器的关系:① 使用BX、SI、DI,默认段寄存器为DSPA = ( DS )X 10H + (SI)或(BX)或(DI)② 使用BP,默认段寄存器为SS8B05PA = ( SS X 10H + ( BP ) 例 1: MOV AX , [ DI ]若(DS ) = 3000H,( DI ) = 2000H则内存操作数的物理地址为: PA = ( DS )X 10H + ( DI ) = 32000H320010B执行后(AX) = (32000H) = 400BH例 2: MOV AX , [ BP ]若(SS ) = 4000H, ( BP ) = 3000H8B46则内存操作数的物理地址为: PA = ( SS )X 10H + ( BP ) = 43000H#指令执行后(AX) = (43000H) = 0102H430000201在指令中给出,范围在0000~ FFFFH可用的寄存器有BX、DI、SI、BP ,如::MOVAL,[BX +10H]MOVAH,[DI+20H ]MOVDL,30H [ SI ]MOVDH,40H [ BP ]寄存器间接寻址相同。

      3) 寄存器相对寻址-基地址+位移量操作数的有效地址由一个寄存器与一个偏移量相加得到,偏移量(相对量)PA = ( DS )X 10H + (SI)或(BX)或(DI) +偏移量PA = ( SS X 10H + ( BP ) +偏移量 例 1: MOV AX , [ BX+30H ]若(DS ) = 2000H , ( BX ) = 1000H则内存操作数的物理地址为:PA = ( DS )X 10H + ( BX ) + 30H =指令执行后:(AX) = (21030H) = 8976H(4)基址加变址寻址 —Index+Dsplacement操作数的有效地址由一个基址寄存器与一个变址寄存器之和给出 可用的基址寄存器为BX、BP,变址寄存器为 SI、DI 如 MOV AL , [ BX+SI ]MOV AX , [ BX][DI ]MOV DL , [ BP+SI ]MOV DX , [ BP][DI ]默认段寄存器由基址寄存器决定①基址寄存器为BX,默认段寄存器为DSPA = ( DS )X 10H + ( BX ) +(SI)或(DI)②基址寄存器为BP,默认段寄存器为SSPA = ( SS )X 10H + ( BP ) +(SI)或(DI)例 1: MOV AX , [ BX + SI ]若(DS ) = 4000H, ( BX ) = 2000H , ( SI ) = 100H则内存操作数的物理地址为: PA = ( DS )X 10H + ( BX ) + ( SI )=指令执行后: (AX) = (42100H) = 2345H(5)相对基址加变址寻址 -Base+ Index+Dsplacemento基址寄存器有BX、BP,变址寄存器有 SI、DI如MOVAL,[BX+SI +10H]MOVAX ,20H[ BX][DI ]MOVDL ,[BP+SI+30H ]MOVDX ,40H[ BP][DI ]例:MOV AX ,[BX + SI + 10H ]操作数的有效地址由:基址寄存器、变址寄存器、8B4010若(DS ) = 4000H, ( BX ) = 3000H , ( SI ) = 200H则内存操作数的物理地址为:PA = ( DS )X 10H + ( BX ) + ( SI ) + 10H = 43210H 指令执行后:(AX) = (43210H) = 8877H432107788除此之外,其他方式均错误。

      如下:MOVCL,[AX]MOVAX,[DX]MOVAL,[CX]MOVCX,[BP+BX]MOVAH,[SI+DI]MOVBL,[AX+CX]3.4 8086的通用指令指令系统可分为六个功能组:数据传送、算术运算、逻辑运算、串操作、控制 传送、处理器控制3.4.1数据传送指令数据传送是最基本、最重要的一种操作,实际程序中,使用的比例最高寄存器一一寄存器寄存器 内存单兀寄存器——I/O端口按传送内容,可分为四类:(1) .通用数据传送 MOV, PUSH, POP, XCHG, XLAT(2) .地址传送 LEA, LDS, LES(3) 标志传送 PUSHF, POPF, LAHF, SAHF(4) 输入输出传送(累加器专用传送指令) IN, OUT▲特点:(1) .除POPF、SAHF夕卜,其他传送指令对标志位均无影响;(2) .唯一允许以段寄存器做操作数的指令,且只有 MOV、PUSH、POP这三 条允许1. MOV指令。

      点击阅读更多内容
      相关文档
      安徽省安全员《A证(企业负责人)》冲刺试卷三.docx 2026年房地产经纪人《房地产经纪业务操作》预测试卷三.docx 安徽省安全员《A证(企业负责人)》模拟试卷一.docx 2026年房地产经纪人《房地产交易制度政策》模拟试卷四.docx 安徽省安全员《B证(项目负责人)》冲刺试卷二.docx 2026年房地产经纪人《房地产经纪专业基础》预测试卷四.docx 2026年房地产经纪人《房地产经纪业务操作》考前点题卷一.docx 2023年通信工程师《通信专业实务(传输与接入-无线)》试题真题及答案.docx 安徽省安全员《A证(企业负责人)》试题精选.docx 2026年房地产经纪人《房地产经纪专业基础》预测试卷二.docx 2026年房地产经纪人《房地产经纪业务操作》考前点题卷二.docx 2026年房地产经纪人《房地产经纪职业导论》冲刺试卷三.docx 2026年房地产经纪人《房地产交易制度政策》冲刺试卷三.docx 2026年房地产经纪人《房地产经纪专业基础》考前点题卷二.docx 2026年房地产经纪人《房地产经纪职业导论》冲刺试卷五.docx 2026年房地产经纪人《房地产经纪职业导论》冲刺试卷四.docx 2026年房地产经纪人《房地产交易制度政策》冲刺试卷一.docx 2026年房地产经纪人《房地产交易制度政策》冲刺试卷四.docx 安徽省安全员《B证(项目负责人)》冲刺试卷三.docx 2026年房地产经纪人《房地产经纪业务操作》模拟试卷二.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.