首页 > 其他分享 >8086指令系统

8086指令系统

时间:2023-04-07 18:45:53浏览次数:56  
标签:8086 指令系统 端口 地址 指令 寄存器 寻址 BX

 《8086寻址方式》

  寻址主要可以分为3类:

    数据寻址

    程序转移地址寻址(即查找下一条指令的地址)

    端口寻址

  解释一下端口:

    

 

       端口也要编址,其编址方式有两种:

      1.集中编址

      

 

 

           即端口在内存中,占内存的空间进行编址

     2.独立编址

      

 

 

           端口独立与内存之外

      这样有个好处是内存的空间更大了

      但是在寻址的时候为了区分是端口的地址还是内存地址

      我们要单独地再添加两条指令(在8086中就是IN与OUT)

      其作用就是访问端口

      与访问内存的指令区分开来

  《寻址方式的划分》

    根据数据的位置可以分为:

    立即寻址(数据在指令中)

    寄存器寻址(数据在寄存器中)

    内存寻址(数据在内存中)

 

   如果用寄存器进行间接寻址,那么能够使用的寄存器只有

    SI 源变址寄存器

    DI 目的变址寄存器

    BX 基址寄存器

    BP 基址指针寄存器

      计算物理地址时,如果使用的是BX,SI,DI,则段基值隐含由DS提供

    BP,由SS提供

     

  《基址变址寻址》

    操作数的偏移地址EA 为指令中基址寄存器 BR 内容 和 变址寄存器 IR 内容 之和

    即[BR][IR]

    注意 基址寄存器只有 BX BP

       变址寄存器只有 SI DI
     然后两两组合
   

 

 

 

《程序转移地址的寻址方式》

  首先回顾一下 指令指针寄存器IP,用于存放下一条执行指令

  这里直接寻址是指直接给出数据,

  这里间接寻址是指用了寄存器来给出数据

 

 

  在汇编语言上会看到这样的代码:

    JMP WORD PTR [BX]

  这里说明一下 PTR 与 WORD:

    具体看此博客<-------

    

 

 

         

 

 

 

 

  《段内寻址》

 

 

    段内直接寻址 JMP SHORT NEXT(NEXT 为变量或者是标注,名字可变)

            ....

            ....

          NEXT:ADDAL,[BX]

    这个就是直接跳转到了 这里

 

 

     

 

    段内间接寻址 JMP WORD PTR TABLE[BX] (TABLE 也是变量)

 

   比如

 

        TABLE[BX] 计算出的 物理地址为232F8H 

    其中的数据为3280H 这个数据直接给 IP

 

 

  《段间寻址》

    用指令中提供的转向段地址 和 偏移地址 取代原先的CS 和 IP

    即运用在不同两段代码之间的跳转

    由于需要 新的CS和IP (均为16位的数据,即要两个16位的数据),而寄存器只有一个16位

    所以到寄存器中寻找数据是不行的

    一定是在内存中找数据

 

    如段间间接寻址:

      JMP DWORD PTR [INTERS+BX]

      这里DWORD是双字,低位字给IP,高位字给CS

    具体看书P25

    

    

 

《8086的指令系统》

 《数据传送类指令》

 具体看书P26

  偏移地址(Offset Address)或有效地址(EA,Effective Address)   段地址 PA      逻辑地址:PA:EA   物理地址:PA*16+EA      知道了上面这些来看下如下几个指令:       MOV  BP  3[BX+SI]     这个指令的含义为:将 DS:[BX+SI+3] 这个逻辑地址转化为物理地址后     将其保存的数据copy到寄存器BP中

 

           

   地址传送指令

  (1)传送偏移地址指令 LEA

    LEA  OPD  OPS

    指令含义为将偏移地址送入指定寄存器

    如:

      MOV  BX, 0100H

      MOV  SI, 0210H

      LEA  BX,1234[BX+SI]

    本来我们是要将 DS:[BX+SI+1234]这个逻辑地址转化为物理地址后,将其中保存的数放到BX中

    但是这里这条指令LEA (注意后面EA,即偏移地址)

    就是要将偏移地址放到指定寄存器中(这里即为BX)

    所以我们不要转化 直接将 (BX+SI+1234)算出的结果放到 BX中

 

 

    输入/输出指令

    输入指令IN,输出指令OUT

    IN AL, PORT

    这条指令的含义为将端口号为PORT的这个端口中的内容交给AL这个寄存器

    需要注意的是:

      端口地址在0000h~00FFh范围内时,用8位地址值直接寻址即可;

      只有端口地址在0100h~FFFFh范围内时,才必须通过DX寄存器间接寻址。

  

    如:

    MOV DX , 383H

    IN  AX,DX

    383H 是16位的(其实他省略了前面的0,其实是0383H)

    其要先将值交给DX,再用DX当做端口号,将端口的值输入到AX中

 

    在0000h~00FFh范围内,端口地址使用8位地址值直接寻址即可,因为这个范围是I/O端口的常用地址范围。

    这种直接寻址方式又被称为“端口地址空间”。

 

    由于端口地址不属于内存地址空间,不能像访问内存一样直接寻址。

    相反,需要通过DX寄存器来进行间接寻址。

    具体来说,在执行IN或OUT指令时,DX寄存器中存储的值会被用作端口地址,从而实现对I/O端口的读写操作。

标签:8086,指令系统,端口,地址,指令,寄存器,寻址,BX
From: https://www.cnblogs.com/cilinmengye/p/17296960.html

相关文章

  • vue指令系统之文本指令
    目录什么是指令系统文本指令a-text指令a-html指令v-showv-if什么是指令系统指令系统是VUE提供的,语法为v-xx写在标签属性中的,系统都称之为指令文本指令文本指定必须写在标签属性上文本指定的值必须为变量,或者表达式v-xx#必须是一个标签属性<pv-text="a_url"></......
  • 8086汇编计算次方,模块化设计
    就是把dw那一行的每个字的数据,求三次方,然后存到dd那一行assumecs:code,ds:datadatasegment dw1,2,3,4,5,6,7,8 dd0,0,0,0,0,0,0,0;;双字,32位dataendscodesegmentmain: movax,data movds,ax callcul;;放到子程序里计算 movax,4c00h int21hcul:......
  • 指令系统
    一台计算机的所有指令的集合构成该机的指令系统,也叫指令集。指令系统是计算机的主要属性,位于硬件和软件的交界面上。指令格式指令字长指令的操作类型扩展操作码......
  • 8086汇编语言学习1-loop循环实现冒泡排序
    关键点:  1.loop指令的原理、断点位置  2.条件转移指令JNLE(小于或等于)和JG(大于)、与CMP(比较)一起使用DATASEGMENTAdw1,3,4,2,5DATAENDSCODESEGMENT......
  • 8086汇编语言学习1-loop循环实现冒泡排序
    关键点:  1.loop指令的原理、断点位置  2.条件转移指令JNLE(小于或等于)和JG(大于)、与CMP(比较)一起使用DATASEGMENTAdw1,3,4,2,5DATAENDSCODESEGMENT AS......
  • COMP2017 精简指令系统
    COMP2017COMP9017Assignment2Due:11:59PMTuesday28March2023localSydneytimeThisassignmentisworth5%+30%ofyourfinalassessmentTaskDescriptionAh,......
  • 8086 微处理器
    《Intel8086CPU的内部结构》  通用寄存器AX,BX,CX,DXAX:累加器BX:基址寄存器CX:计数寄存器DX:数据寄存器具体师大书P12......
  • 8086汇编,大小写转换
    assumecs:code,ds:datadatasegmentdb'BaSic'db'INFORMaTION'dataendscodesegmentstart:movax,datamovds,ax......
  • MacOs 下调试 8086 汇编
    所需工具x86DOS模拟器:dosboxDOS上运行调试工具:DEBUG.EXE汇编器(链接器):DOS上运行的MASM.EXE、LINK.EXE或者直接使用MacOs自带的nasmexe下载地址:链接:https:/......
  • 指令系统(三)
    目录寻址方式(二)转移地址的寻址方式程序的执行顺序由CS和IP的内容决定。正常情况下,CPU每执行一条指令,IP的内容自动加1,使之指向下一条指令。当遇到转移指令时,通过自动......