急!还有1天就要考3级了,有道汇编语言题不会,求高手帮忙啊!!!在10月18日之前有效

来源:百度知道 编辑:UC知道 时间:2024/06/05 05:06:59
题目是:
STR1 DB 'AB'
STR2 DB 16 DUP(?)
CNT EQU $-STR1
MOV CX,CNT
MOV AX,STR1
求执行该程序段后,CX的值
答案是 0012H(18)
请高人详细说明下该答案是如何得到的,特别是$-STR1和STR1 DB 'AB'是什么意思?

首先告诉你EQU是定义常量的意思,所以CNT就是一个常量,它是值就是$-STR1的值,而$代表当前地址的意思,所以$-STR1就是当前的地址到STR1所占的空间值,STR1共定义的'AB'两个变量所以占两个字节(DB类型的变量占一个字节)而STR2定义的16个变量的空间(DB 16 DUP (?)的意思是定义16个DB类型的变量,其初始值为空),理所当然的CNT就是18个字节(0012H)
明白了吗?STR1还可以看成C语言时的字符类数组的首地址,STR1[0]就是A,STR[1]就是B了.......

1