
汇编语言 关于LENGTH运算符问题 定义上说如果是用DUP说明的就返回DUPl外层的值 否则全返回1
问题1为什么不用DUP说明的就返回1比如K1DB10H,20H,30H,40H这样的变量元素总和应该是4个才对啊问题2如果是这样X1DB30H,33H,10HDUP(1A...
问题1 为什么不用DUP说明的就返回1 比如 K1 DB 10H,20H,30H,40H 这样的变量元素总和应该是4个才对啊
问题2 如果是这样 X1 DB 30H,33H,10H DUP(1AH),? 这种DUP和30H ,33H等混合的应该返回多少呢? 就是LENGTH X1 等于多少呢? 展开
问题2 如果是这样 X1 DB 30H,33H,10H DUP(1AH),? 这种DUP和30H ,33H等混合的应该返回多少呢? 就是LENGTH X1 等于多少呢? 展开
2个回答
展开全部
不要用LENGTH、SIZE这两个运算符,这两个运算符对用DUP定义的变量有意义,但是对普通变量一点意义都没有。应该用LENGTHOF和SIZEOF这两个运算符 。
dseg segment
K1 DB 10H,20H,30H,40H
X1 DB 30H,33H,10H DUP(1AH),?
dseg ends
cseg segment
assume cs:cseg, ds:dseg
begin:
mov ax, dseg
mov ds, ax
mov ax, LENGTHOF K1 ;结果是4
mov ax, LENGTHOF X1 ;结果是13H
mov ah, 4ch
int 21h
cseg ends
end begin
dseg segment
K1 DB 10H,20H,30H,40H
X1 DB 30H,33H,10H DUP(1AH),?
dseg ends
cseg segment
assume cs:cseg, ds:dseg
begin:
mov ax, dseg
mov ds, ax
mov ax, LENGTHOF K1 ;结果是4
mov ax, LENGTHOF X1 ;结果是13H
mov ah, 4ch
int 21h
cseg ends
end begin
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询