ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

汇编语言 第8章 数据处理的两个基本问题

2021-10-18 23:33:48  阅读:141  来源: 互联网

标签:基本 di 汇编语言 16 si bp 寄存器 数据处理 bx


处理数据时有两个基本问题:

  • 处理的数据存储在什么地方?
  • 处理的数据有多长?字节、字还是双字?

寄存器bx、bp、di、si,只有这四个寄存器可以用于寄存器间接寻址,它们之间可以特定组合。

用不太标准的语言来说,bx和bp是同一等级,di和si是同一等级且比bx、bp低一级,bx和bp不能同时使用,di和si不能同时使用,那么就分别有四种组合。

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

  1. 立即数;数字或者字符。1,2000h,'a'
  2. 寄存器;四个通用寄存器都可以单独表示地址,ax、bx、cx、dx
  3. 段地址(SA)+偏移地址(EA);段地址都是默认的,ds、es等。偏移地址的表示有多种方法。
  • 只用立即数,为直接寻址
  • 只用寄存器bx、bp、di、si中的一个,为寄存器间接寻址
  • 只用寄存器bx、bp、di、si中的一个再加上一个立即数,为寄存器相对寻址     也可写成[bx].idata,[bx+idata]
  • 用寄存器bx、bp、di、si中的两个,比如[bx+si]、[bx+di]、[bp+si]、[bp+di],为基址变址寻址
  • 用寄存器bx、bp、di、si中的两个再加上一个立即数,比如[bx+si+idata]、[bx+di+idata]、[bp+si+idata]、[bp+di+idata],为相对基址变址寻址

数据长度的表达:

    1. 操作寄存器时,默认为寄存器长度。mov ax,1 mov al,1分别为字操作和字节操作
    2. 用操作符X ptr指明,其中X为 word 或 byte。例如mov word ptr ds:[0],1指明了是字操作
    3. push和pop指令,默认只进行字操作。

div指令:

    div是除法指令,先普及一下a/b=c……d,其中a是被除数,b是除数,c是商,d是余数

  • 除数,存储在内存单元或者是寄存器中,可以是8位或者16位
  • 被除数,默认放在AX或者DX中。除数是8位时,被除数位16位,在ax中;除数是16位时,被除数为32位,高16位在dx中,低16位在ax中
  • 商和余数,除数为8位时,商存放在AL,余数存放在AH;除数为16位时,商存放在AX,余数存放在DX
  • 格式为 div reg 或 div 内存单元,可以指明长度。div byte ptr ds:[0]

特殊情况时,如果除数为8位,被除数理应为16位,但16位可能无法存放某些较大的被除数,这时只能用AX和DX。

例如100001/100,100为8位数,理应用ax存放100001,但是100001>65535,所以100001的高位存储在DX,低位存储在AX   (dx)*10000H+(ax) = 100001

伪指令dd:

db为 define byte定义字节型数据,dw为 define word定义字型数据,dd为 define double word定义双字型数据

操作符dup:

配合db、dw、dd等数据定义伪指令使用的,用于进行数据的重复。格式如下

数据定义指令  重复次数  dup指令 (重复的内容)重复的内容中的单个数据长度 默认是与数据定义指令的类型相同  db 3 dup (0)  定义了3个字节,内容都是0 (3默认是字节型,如果改成dw,3默认是字型)

db 3 dup (0,1,2) 定义了九个字节,为0、1、2、0、1、2、0、1、2

 

标签:基本,di,汇编语言,16,si,bp,寄存器,数据处理,bx
来源: https://www.cnblogs.com/haimeng-lin/p/15422946.html

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

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

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

ICode9版权所有