汇编语言王爽第四部分(内存单元)

内存单元

1,内存单元的地址
2,内存单元的长度

在这里插入图片描述

mov ax,2000h
mov ds,ax;段地址设为2000
mov bx,1000h偏移地址从1000开始
mov ax,[bx];将21000h的字转移到ax中
add bx,2;偏移地址+2
mov [bx],ax;将ax中的字转移到21002h中
add bx,2;偏移地址+2
mov [bx],ax;将ax中的字转移到21004h中
inc bx;偏移地址+1
mov [bx],al;将al中的字节转移到21005h中
inc bx;偏移地址+1
mov [bx],al;将al中的字节转移到21006h中


执行之后的内存为
在这里插入图片描述
[bx]表示一个内存单元,它的地址是ds*16+bx
1,mov ax,ds:[0]表示将一个内存单元送入ax,长度为2字节,段地址是ds,偏移地址是0

2,mov al,ds:[0]表示将一个内存单元送入al,长度为1字节,段地址是ds,偏移地址是0

3,mov ax,[bx]表示段地址为ds,偏移地址为bx,将这个地址的数据送入ax,即
(ax)=((ds)*16+(bx))

4,mov [bx],ax表示段地址为ds,偏移地址为bx,将ax的数据送入这个地址,即
((ds)*16+(bx))=(ax)

在汇编程序中,如果要用指令访问一个内存单元,则在指令中必须用"[…]"`来表示内存单元,如果在"[]"里用一个常量idata直接给出内存单元的偏移地址,就要在“[]”的前面显示地给出段地址所在的段寄存器.
mov al,[0]表示将0转移到al中
mov al,ds:[0]表示将段地址为ds,偏移地址为0的数据转移到al中.

发布了8 篇原创文章 · 获赞 0 · 访问量 95

猜你喜欢

转载自blog.csdn.net/qq_41955402/article/details/104259564