其他分享
首页 > 其他分享> > 八--数据处理的两个基本问题

八--数据处理的两个基本问题

作者:互联网

(1)处理的数据在什么地方?

(2)要处理的数据有多长

约定reg表示一个寄存器,sreg表示一个段寄存器

reg包括:ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、di

sreg包括:ds、ss、cs、es

1.bx、si、di和bp

  ①只有这四个寄存器可以用“[......]”来进行内存单元的寻址  

    如mov ax,[bx+si]是正确的

    mov ax,[cx]是错误的

  ②在“[......]”中,这四个寄存器可以单个出现,或只能以四种组合出现

    bx和si  bx和di

    bp和si  bp和di

  ③只要在[......]中使用bp,而没有显性的给出段地址,那么段地址默认在ss中

2.机器指令处理的数据在什么地方

  机器指令不关心数据的值,只关心指令执行前一刻,他将要处理的数据所在的位置

  有3个地方:cpu内部、内存、端口

  

 

 3.汇编语言中数据位置的表达

  ①立即数(idata)

    直接包含在机器指令中的数据(执行前在cpu的指令缓冲器中),称为立即数

    

 

   ②寄存器

    要处理的数据在寄存器中,指令中给出寄存器名

    

 

  ③段地址(SA)和偏移地址(EA)

    数据在内存中,可用[X]的格式给出EA,而SA在某个段寄存器中

    

 

 4.寻址方式

  

 

 5.指令要处理的数据有多长

  8086可以处理两种尺寸的数据:byte和word

  ①通过寄存器名指明尺寸

    

 

   ②没有寄存器名的话,用操作符X ptr指明,X可以为word或byte

    

 

   ③其他方法

    有些指令默认的数据尺寸,比如push [1000H]不用指明,因为push指令只进行字操作

6.寻址方式的综合应用

7.div指令

  div是除法指令,应注意以下问题:

    ①除数:有8位和16位两种,在一个reg或内存单元中

    ②被除数:默认放在AX或DX和AX中

      如果除数为8位,被除数则为16位,默认在AX中存放

      如果除数为16位,被除数则为32位,在DX和AX中存放,DX放高16位,AX放低16位

    ③结果:如果除数为8位,则AL存放除法的商,AH存放除法的余数

        如果除数为16位,则AX存放除法的商,DX存放除法的余数

   

 

   

  

 

   

 

 8.伪指令dd

  dd用来定义dword型数据(double word,双字)

  

  

 

9.dup

  dup是一个操作符,是和db、dw、dd配合使用的,用来进行数据的重复

  

 

   

 

   

 

   

 

标签:基本,16,--,指令,bp,寄存器,数据处理,AX,数据
来源: https://www.cnblogs.com/cangshiqian/p/16651901.html