数据处理的两个基本问题

用于内存寻址的寄存器

8086CPU有14个寄存器:
(1)通用寄存器:
AX (Accumulator):累加寄存器
BX (Base):基地址寄存器
CX (Count):计数器寄存器
DX (Data):数据寄存器
(2)变址寄存器:
SI (Source Index):源变址寄存器
DI (Destination Index):目的变址寄存器
(3)指针寄存器:
SP (Stack Pointer):堆栈指针寄存器
BP (Base Pointer):基指针寄存器
(4)段寄存器:
CS (Code Segment):代码段寄存器
DS (Data Segment):数据段寄存器
SS (Stack Segment):堆栈段寄存器
ES (Extra Segment):附加段寄存器
(5)指令指针寄存器: IP
(6)标志寄存器:PSW

使用原则:
(1)bx、bp、di、si寄存器可用于内存单元寻址,其中bx、di、si段地址默认在ds中,bp的段地址默认在ss中
(2)CS寄存器不允许赋值,其他DS,ES,SS可以用通用寄存器给其赋值。

处理的数据在什么地方?

1.立即数
对于直接包含在机器指令中的数据(执行前在CPU的指令缓冲器中),称为立即数(idata ),数据包含在指令中

mov ax,1
add bx,2000h
or bx,00010000b
mov al,'a'

2.寄存器
指令要处理的数据在寄存器中,在汇编指令中给出相应的寄存器名。

mov ax,bx
mov ds,ax
push bx
mov ds:[0],bx
push ds
mov ss,ax
mov sp,ax

3.段地址(SA)和偏移地址(EA)
指令要处理的数据在内存中,可通过[X]的格式给出EA,SA在某个寄存器中

段地址默认在ds中

mov ax,[0]
mov ax,[di]
mov ax,[bx+8]
mov ax,[bx+si]
mov ax,[bx+si+8]

段地址默认在ss中

mov ax,[bp]
mov ax,[bp+8]
mov ax,[bp+si]
mov ax,[bp+si+8]

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

mov ax,ds:[bp]        
mov ax,es:[bx]        
mov ax,ss:[bx+si]     
mov ax,cs:[bx+si+8] 

处理的数据有多长?

1 .通过寄存器名指明要处理的数据尺寸
字操作:

mov ax,1
 mov bx,ds:[0]
 mov ds,ax
 mov ds:[0],ax
 inc ax
 add ax,1000

字节操作:

mov al,1
 mov al,bl
 mov al,ds:[0]
 mov ds:[0],al
 inc al
 add al,100

2 . 在没有寄存器的情况下,用操作符X ptr指明内存单元长度
字操作: word ptr

 mov word ptr ds:[0],1
 inc word ptr [bx]
 inc word ptr ds:[0]
 add word ptr [bx],2

字节操作: byte ptr

 mov byte ptr ds:[0],1
 inc byte ptr [bx]
 inc byte ptr ds:[0]
 add byte ptr [bx],2

div 指令

div是除法指令,使用div作除法的时候:
div 除数(寄存器或内存单元,内存单元时要指明是字单元还是字节单元)
1. 除数为8位时,被除数则为16位,默认放在AX里,运算结果的商用AL存储,余数用AH存储
2. 除数为16位时,被除数则为32位,高16位放在DX里,低16位放在AX中,运算结果的商用AX存储,余数用DX存储

dup操作符

dup和db、dw、dd 等数据定义伪指令配合使用,用来进行数据的重复。
dup的使用格式
db 重复的次数 dup (重复的字节型数据)
dw 重复的次数 dup (重复的字型数据)
dd 重复的次数 dup (重复的双字数据)
eg:
db 3 dup (0)
定义了3个字节,相当于 db 0,0,0
db 3 dup (0,1,2)
定义了9个字节,相当于 db 0,1,2,0,1,2,0,1,2
db 3 dup (‘abc’ , ’ABC’)
定义了18个字节,相当于 db ‘abcABCabcABCabcABC’

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值