0
点赞
收藏
分享

微信扫一扫

数据段寄存器DS的使用

通用寄存器:

  • AX = AH(High) + AL(Low) = AX可以存放一个字型数据 = 存放2个字节型数据
  • BX = BH + BL
  • CX = CH + CL
  • DX = DH + DL

注:H = high 高 ,L= Low低,AH为高八位,AL为低八位,通用寄存器由高八位和低八位组成。

通用寄存器 一般存放数据 ,存放的最小值为0000H,最大值为FFFFH,由2个字节构成的。(2Byte = 16Bit)
范围0 ~ 65535(0 ~ 2的16次方 - 1)

Byte = 8bit (字节型数据)

  • 一个内存地址就能保存一个字节

word = 2Byte = 16bit (字型数据)

  • 一个字需要2个地址连续的内存单元来存放
  • 高位地址存放 高位字节
  • 低位地址存放 低位字节

例如:
数据段寄存器DS的使用_数据
由上图可得不同地址存放的字节型和字型的数据分别为:

  • 0 地址内存单元存放的<字节型>数据为 33H
  • 0 地址内存单元存放的<字型>数据为 2C33H
  • 2 地址内存单元存放的<字节型>数据为 6FH
  • 地址内存单元存放的<字型>数据为 F26FH
  • 1 地址内存单元存放的<字节型>数据为 2CH
  • 1 地址内存单元存放的<字型>数据为 6F2CH

程序实现如下所示:
数据段寄存器DS的使用_通用寄存器_02
由上图可得不同地址存放的字节型和字型的数据分别为:
0 地址内存单元存放的<字节型>数据为 33H
数据段寄存器DS的使用_寄存器_03

0 地址内存单元存放的<字型>数据为 2C33H
数据段寄存器DS的使用_通用寄存器_04
2 地址内存单元存放的<字节型>数据为 6FH

2 地址内存单元存放的<字型>数据为    F26FH
2 地址内存单元存放的<字型>数据为 F26FH

数据段寄存器DS的使用_通用寄存器_06

1 地址内存单元存放的<字节型>数据为 2CH
数据段寄存器DS的使用_寄存器_07
1 地址内存单元存放的<字型>数据为 6F2CH
数据段寄存器DS的使用_通用寄存器_08

示例:
数据段寄存器DS的使用_通用寄存器_09

mov bx,2000
mov ds,bx
mov al,ds:[0]  ; 2000:0 →al决定了只取一个字节 字节型数据

数据段寄存器DS的使用_寄存器_10

mov bx,2000
mov ds,bx
mov ah,ds:[0]  ; 2000:0 →ah决定了只取一个字节 字节型数据

数据段寄存器DS的使用_通用寄存器_11

mov bx,2000
mov ds,bx
mov ax,ds:[0]  ; 2000:0 →ax决定了只取2个字节 字型数据

数据段寄存器DS的使用_通用寄存器_12

将al中的数据送入内存单元 20000H中
数据段寄存器DS的使用_通用寄存器_13

mov bx,1000
mov ds,bx
mov [0],al

数据段寄存器DS的使用_数据_14
数据段寄存器DS的使用_寄存器_15

例:
1.内存中的情况如图所示,指令执行后寄存器中的内容

20000H 23H
20001H 11H
20002H 22H
20003H 66H

mov ax,2000H       ;  AX = 2000H
mov ds,ax          ;  DS = 2000H
mov ax,ds:[0]      ;  AX = 1123H  →将ds:[0]字型数据存放到AX
mov bx,ds:[2]      ;  BX = 6622H  →将ds:[2]字型数据存放到BX
mov cx,ds:[1]      ;  CX = 2211H   →将ds:[1]字型数据存放到CX
add bx,ds:[1]      ;  BX = 8833H   →将bx + ds:[1]字型数据相加
add cx,ds:[2]      ;  CX = 8833H   →将cx + ds:[2]字型数据相加

2.内存中的情况如图所示,指令执行后寄存器中的内容

20000H 23H
20001H 11H
20002H 22H
20003H 11H

mov ax,2000H       ; AX = 2000H           
mov ds,ax          ; DS = 2000H
mov ax,2C34H       ; AX = 2C34H   20000H 34H
mov ds:[0],ax                     20001H 2CH  
mov bx,ds:[0]      ; BX = 2C34H                                  
sub bx,ds:[2]      ; BX = 1B12H   20002H 12H   BX - 1122H = 1B12H
mov ds:[2],bx                     20003H 1BH

举报

相关推荐

0 条评论