关于汇编语言的一道简单题
PARTNODW?PNAMEDB16DUP(?)COUNTDD?PLENTHEQU$-PARTNO则PLENTH的值为多少?它表示什么意思,我想知道,$-PARTNO它里...
PARTNO DW ?
PNAME DB 16 DUP(?)
COUNT DD ?
PLENTH EQU $-PARTNO
则PLENTH的值为多少?它表示什么意思,
我想知道,$-PARTNO它里面的PARTNO指的是什么?是所占空间?还是长度?类型?$是什么?写详细点 展开
PNAME DB 16 DUP(?)
COUNT DD ?
PLENTH EQU $-PARTNO
则PLENTH的值为多少?它表示什么意思,
我想知道,$-PARTNO它里面的PARTNO指的是什么?是所占空间?还是长度?类型?$是什么?写详细点 展开
3个回答
展开全部
PARTNO DW ? 这一句是定义内存空间,占用一个字,即两个字节
PNAME DB 16 DUP(?)这一句是定义16个字节内存空间。
COUNT DD ? 这一句是定义一个双字占4个字节内存空间.
PLENTH EQU $-PARTNO 这一句是定义一个常数PLENTH,它的大小等于当前地址-PARTNO地址
也就等于2+16+4=22,其中$代表当前地址。
PNAME DB 16 DUP(?)这一句是定义16个字节内存空间。
COUNT DD ? 这一句是定义一个双字占4个字节内存空间.
PLENTH EQU $-PARTNO 这一句是定义一个常数PLENTH,它的大小等于当前地址-PARTNO地址
也就等于2+16+4=22,其中$代表当前地址。
追问
它又没说它们的地址是连续的,为什么可以直接减呢?
追答
这你可以汇编看一看映像文件,一般编译器如果在上一个数据不出现单数的情况下,都是连续存放
否则进行偶数对齐,加快访问速度。不同编译器可能结果不同,但像MASM等编译结果应该如此。
展开全部
DW、DB、DD,都是用于在存储器中存放常数的。
PARTNO DW ? ---存放两个字节的未知数,这个未知数的变量名,就是PARTNO。
-----------PARTNO,既是变量名,也是这个变量的存放地址。
PNAME DB 16 DUP(?)--存放16个字节未知数
COUNT DD ?------存放四个字节未知数
------------这些都是顺序存放的。
------------下面,应该往第几个字节来存放?这个数字,就是$。
------------$,称为:当前地址。
PLENTH EQU $-PARTNO
-- PLENTH = 当前 - PARTNO = 2 + 16 + 4 =...
-- PLENTH ,代表,这几个变量占用的空间字节数。
PARTNO DW ? ---存放两个字节的未知数,这个未知数的变量名,就是PARTNO。
-----------PARTNO,既是变量名,也是这个变量的存放地址。
PNAME DB 16 DUP(?)--存放16个字节未知数
COUNT DD ?------存放四个字节未知数
------------这些都是顺序存放的。
------------下面,应该往第几个字节来存放?这个数字,就是$。
------------$,称为:当前地址。
PLENTH EQU $-PARTNO
-- PLENTH = 当前 - PARTNO = 2 + 16 + 4 =...
-- PLENTH ,代表,这几个变量占用的空间字节数。
追问
你的解释也很好, 谢谢了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
PLENTH表示上面变量占用的字节数,每个DB占一个字节,每个DW占2个字节,DD占4个字节。
因此PLENTH=2+16+4=22
$是该行的分配地址
PARTNO是PARTNO的分配地址
因此PLENTH=2+16+4=22
$是该行的分配地址
PARTNO是PARTNO的分配地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询