首页 /  技术专区  /  汇编语言 宽屏模式 >

DS与数据段

1、对内存单元中数据的访问 

对于8086PC机,可以根据需要将一组内存单元定义为一个段。 

物理地址=段地址×16+偏移地址 ; 

将一组长度为N(N≤64K)、地址连续、起始地址为16的倍数的内存单元当作专门存储数 据的内存空间,从而定义了一个数据段。 

例:用123B0H~123B9H的空间来存放数据 

段地址:123BH 起始偏移地址:0000H 长度:10字节 

段地址:1230H 起始偏移地址:00B0H 长度:10字节 ; 

.... 

处理方法:(DS):([address]) 

用DS存放数据段的段地址 

用相关指令访问数据段中的具体单元,单元地址由[address]指出


2、将123B0H~123BAH的内存单元定义为数据段

image.png

累加数据段中的前3个单元中的数据 

mov ax, 123BH 
mov ds, ax 
mov al, 0 
add al, [0]
add al, [1] 
add al, [2]

累加数据段中的前3个字型数据 

mov ax, 123BH 
mov ds, ax 
mov ax, 0 
add ax, [0] 
add ax, [2] 
add ax, [4]

3、练习

给出00000H-0001F的数据,请写出下面代码的执行结果:

mov ax,[0000] 
mov bx,[0001] 
mov ax,bx 
mov ax,[0000] 
mov bx,[0002] 
add ax, bx 
add ax,[0004] 
mov ax,0 
mov al,[0002] 
mov bx, 0 
mov bl, [000C] 
add al,bl

image.png

4、用mov指令操作数据

image.png

已知:mov 段寄存器,寄存器 

推测1 mov 寄存器,段寄存器 

已知:mov 内存单元,寄存器 

推测2 mov 内存单元,段寄存器 

推测3 mov 段寄存器,内存单元 

已知:mov 寄存器,数据 

推测4 mov 段寄存器,数据

image.png

5、加法add和减法sub指令

image.png

推测1 add 段寄存器,寄存器 

推测2 add 内存单元,内存单元 

推测..

image.png

6、用DS和[address]形式访问内存中数据段方法小结

指令 

mov ax, 1000H 
mov ds, ax 
mov ax, 11316 
mov [0], ax 
mov bx, [0] 
sub bx, [2] 
mov [2], bx

(1)字在内存中存储时 ,要用两个地址连续的内存单元来存放,字的 低位字节存放在低地址单元中,高位字节存放再高地址单元中。 

(2)用 mov 指令要访问内存单元,可以在mov指令中只给出单元的偏 移地址,此时,段地址默认在DS寄存器中。 

(3)[address]表示一个偏移地址为address的内存单元。 

(4)在内存和寄存器之间传送字型数据时,高地址单元和高8位寄存器、 低地址单元和低8位寄存器相对应。 

(5)mov、add、sub是具有两个操作对象的指令,访问内存中的数据段 (对照:jmp是具有一个操作对象的指令,对应内存中的代码段)。 

(6)可以根据自己的推测,在Debug中实验指令的新格式。


头像
0/200
图片验证码