以下是引用梁朝斌在2013-1-13 22:31:09的发言:
那个学得好的,请给我详细解释一下,我马上给分你哦
DA1 DB 83H,72H,61H,94H,5AH
┇
MOV CX,WORD PTR DA1 ; WORD 是两个byte 数值按高位到低位,所以cx的值是7283
AND CX,0FH ;0F = 1111 ,这里and相当于清cx高12位,只保留后4位,(7283 = 111001010000011),结果是03(0011)
MOV AL,DA1+3 ;al = DA1开始偏移3位置处,从0开始算起,所以+3 就是 取第4个,所以al = 94H
SHL AL,CL ; 这个是左移,AL = 94H = 10010100 左移 3位就是结果10100000 所以等于A0
上述指令序列执行后,AL=__0A0H____,CL=__03H____。
89、现有如下程序段:
DATA SEGMENT DA3 EQU 1234H
ORG 0020H DA4 EQU $-DA2
DA1 DW 12H,23H DA5 DB 31H,32H
DA2 DB 11H,21H DATA ENDS
请回答:(1)该程序段已占有的存储字节数是多少?(2)符号名DA4的值是多少?符号名DA5的值是多少?
DA1 是dw类型,所以是4*2 DA5 是db ,所以是2*1 DA2 也是db ,所以是2*1 一共12个字节
DA4 的值等于0020H - DA2 因为$表示取当前地址
如上!
[
本帖最后由 yibana 于 2013-1-14 22:48 编辑 ]