问几个关于16位汇编的概念问题。

SainTHwcQ 2005-09-13 07:01:09
小弟自学汇编,许多烦恼,望各位能帮下我。

1、BUFF DB 7,6,'56',?
ARRAY DW 0,67H,7
BASUB EQU ARRAY-BUFF
问:BASUB的值是多少?它表示什么意义?

答案:5,表示变量BUFF所占有存储单元字节数。

为什么表示这个啊?

2、假设程序中的数据定义如下:
BUF1 DB 100 DUP('a')
BUF2 DW 1275,567,0C5H
BUF3 DB 20 DUP(?)
BUF4 DB 7,4,6,9,8

问题1:将BUF2的第三字节数据送入CL。
我写的是:MOV AX,567
MOV CL,AL
不知道这样写可以不?
它的答案是:MOV CL,BYTE PTR BUF2+2
为什么不是:MOV CL,BYTE PTR [BUF2+2],应该加中括号啊。

问题2:用伪指令写出BUF1和BUF2二者的总长度(字节数)。
答案:TLEN EQU BUF3-BUF1
我确实不知道为什么是这样。
...全文
147 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodxiaoxiao 2005-09-14
  • 打赏
  • 举报
回复
这个跟8086的存储器组织有关.
大熊猫侯佩 2005-09-14
  • 打赏
  • 举报
回复
你为什么认为是 48h?自己用 debug + masm 试一下。
SainTHwcQ 2005-09-13
  • 打赏
  • 举报
回复
我明白BASUB EQU ARRAY-BUFF和TLEN EQU BUF3-BUF1的意思了。

我还有个问题就是:X1 DW 3548H
X2 EQU BYTE PRT X1
问X2等价多少,我觉得是48H,可是答案是35H,到底怎么回事啊?

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧