所处理的数据在什么地方 有多长 如何定义 如何寻找

处理的数据在什么地方:
立即数(idata)1,3,10,3F
寄存器AX,AL,BX
内存单元,可用寻址方式给出DS:[idata],ds:[0]
处理的数据有多长:
MOV AX,1	;字操作
MOV AL,1	;字节操作
MOV BYTE PTR DS:[0],1	;字节操作
MOV WORD PTR DS:[0],1	;字操作
PUSH/POP 进行的是字操作

数据的定义:
data segment
db 1H ;定义字节数据 每一个字节数据项占一个内存单元
dw 2H ;定义字数据 每一个字数据项占连续2个内存单元
dd 3H ;定义双字数据 每一个双字数据项占连续4个内存单元
dw 1E2FH ;定义一个字 高(8位)字节1EH,低(8位)字节2FH 存储在内存中 如下表
dw ? ;不对数据项分配初始值,仅分配内存单元 10009H,1000AH为预置空间
data ends
下表为以上数据在存储单元中的初始状态,内存中一个存储单元存放一个字节,一个字为两个字节,这个字的高位存放在高地址空间中,低位存放在低地址空间中:
起始地址1000:0
01H 10000H(DB定义的数据1占1内存单元空间) 
00H 10001H(DW定义的数据占2个内存单元空间) 
02H 10002H 
00H 10003H(DD定义的数据占4个内存单元地址) 
00H 10004H
00H 10005H
03H 10006H
2FH 10007H(低位存放在低空间10007H单元中) 
1EH 10008H(高位存放在低空间10008H单元中) 
? 10009H
? 1000AH

寻址
MOV AX,1000H
MOV DS,AX
MOV BX,0
MOV AL,DS:[BX] 	;AL中保存地址10000H中的数据 即我们用db定义的数据"1H"
MOV AX,DS:[BX+1];一个字占连续的两个内存单元,低地址10001H高地址10002H可以读作10001H地址字单元,表示为DS:[10001H]
MOV AX,DS:[BX+3];双字的低16位存放在AX寄存器中
MOV DX,DS:[BX+5];     高16为存放在DX寄存器中	AX,DX保存了DD定义的双字数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值