
汇编语言中定义的数据段的问题
DATASEGMENTARY1DW1234H,5678HARY2DWARY1ARY3DDARY1DATAENDS为什么ary2的值是ary1的偏移量ary3的值是ary1...
DATA SEGMENT
ARY1 DW 1234H,5678H
ARY2 DW ARY1
ARY3 DD ARY1
DATA ENDS
为什么ary2的值是ary1的偏移量 ary3的值是ary1的偏移量和段基值
如果在代码段写 mov ax,ary1 却为什么的到的是ary1的第一个值 1234h 展开
ARY1 DW 1234H,5678H
ARY2 DW ARY1
ARY3 DD ARY1
DATA ENDS
为什么ary2的值是ary1的偏移量 ary3的值是ary1的偏移量和段基值
如果在代码段写 mov ax,ary1 却为什么的到的是ary1的第一个值 1234h 展开
展开全部
这个就是这么规定的。
如果定义变量的时候,是这样的形式:
变量名 类型 常量
那么结果就是把常量的值赋给变量。
如果是这种形式:
变量名1 dw 变量名2
那么结果就是变量名1 = 变量名2在段内的偏移地址。
如果是这种形式:
变量名1 dd 变量名2
那么结果就是变量名1的高16位是变量名2的段地址,低16位是变量名2在段内的偏移地址。就是这么规定的,记住就行了。
如果定义变量的时候,是这样的形式:
变量名 类型 常量
那么结果就是把常量的值赋给变量。
如果是这种形式:
变量名1 dw 变量名2
那么结果就是变量名1 = 变量名2在段内的偏移地址。
如果是这种形式:
变量名1 dd 变量名2
那么结果就是变量名1的高16位是变量名2的段地址,低16位是变量名2在段内的偏移地址。就是这么规定的,记住就行了。
展开全部
变量的三个使用方法:
1 变量作为指令中的操作数,代表变量值
DA1 DB 0FEH,57H
MOV AL ,DA1 AL=0FEH
MOV AL, DA1+1 AL=57H
2变量出现在伪指令的参数中或指令语句寻址方式中时,表示偏移地址
MOV DA3[SI], AL
3《当定义变量伪指令时参数为另一个变量时,则变量的值为被引用变量名的地址,段基值和偏移量》如果用DW时,则只有偏移量 如果用DD则前二个字节存放偏移量 后二个字节存放段基值~
1 变量作为指令中的操作数,代表变量值
DA1 DB 0FEH,57H
MOV AL ,DA1 AL=0FEH
MOV AL, DA1+1 AL=57H
2变量出现在伪指令的参数中或指令语句寻址方式中时,表示偏移地址
MOV DA3[SI], AL
3《当定义变量伪指令时参数为另一个变量时,则变量的值为被引用变量名的地址,段基值和偏移量》如果用DW时,则只有偏移量 如果用DD则前二个字节存放偏移量 后二个字节存放段基值~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询