ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-09-03 09:03:18  阅读:204  来源: 互联网

标签:基本 16 -- 指令 bp 寄存器 数据处理 AX 数据


(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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有