第8章 数据处理的两个基本问题

《汇编语言第三版》王爽著  ------读书笔记 

8.1 bxsidibp

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)[...]中 的4个寄存器

     bx,si,di,bx+si,bx+di,bp,bp+si,bp+di

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

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

1)立即数(idata)

 

2)寄存器

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

   i  bx或无bx,段地址默认ds

   ii bp,段地址默认ss

 

存放段地址的寄存器可显性给出

mov ax,ds:[bp]

mov ax, es:[bx]

mov ax,ss:[bx+si]

mov ax,cs:[bx+si+8]

8.4 寻址方式

8.5指令要处理的数据有多长

  8086CPU 可处理

   byte word

1)通过寄存器名指明

例:

    mov ax,1

    mov al,1

2)操作符 X ptr     X 可为word 或 byte

 

 

3)其它方法

有些指令默认访问的是字单元还是字节单元

比如:push [1000H]  push指令只进行字操作

 

8.6寻址方式的综合应用

[bx+idata+si]

[bx]. idata[si]

 

与c语言的结构体对比

struct Company{

    char CN[3];

    char HN[9];

    int PM;

   int SR;

   char CP[3];

};

 

struct Company dec = {"DEC",'LIN', '133',"33","cook"};

 

dec.cn[i]

dec对应整个结构体的地址([bx]),cn对应数据项的地址idata,

i对应数据项里每个元素的地址si

[bx]. idata[si]

 

8.7 div 指令

除法指令

1)除数:8/16位 在一个reg或内存单元中

 

2)被除数:默认放在AX或DX和AX中,

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

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

 

3)结果:如果除数为8位,则AL存储除法操作的商,AH存储除法操作的余数;

               如果除数为16位,则AX存储除法操作的商, DX存储除法操作的余数;

 

 

格式如下

div reg

div 内存单元

 

8.8 伪指令dd

db  定义字节型数据

dw 定义字型数据

dd 定义dword(double word 双字) 型数据的

 

8.9 dup

dup是一个操作符,同db,dw,dd一样,由编译器识别处理

例:

dup 3 dub(0)

相当于 db 0 ,0,0

 

db 3 dup(0,1,2)

相当于 db 0,1,2,0,1,2,0,1,2

 

db 3 dub('abc','ABC')

相当于 db ‘abcABCabcABCabcABC’

使用格式

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值