VARB DB 34,34H,‘GOOD’,2 DUP(1,2 DUP(0) ))
VARW DW 5678H,‘CD’,$+2,2 DUP(100) VARC EQU 12
VARB DS:0100H
22H 34H 47H 4FH 4FH 44H 01H 00H 00H 01H 00H
DS:010BH
DS:0101H
VARW DS:010CH
DS:0102H
DS:010DH
DS:0103H
DS:010EH
DS:0104H
DS:010FH
DS:0105H
DS:0110H
DS:0106H
DS:0111H
DS:0107H
DS:0112H
DS:0108H
DS:0113H
DS:0109H
DS:0114H
DS:010AH
DS:0115H
00H 78H 56H 44H 43H 12H 01H 64H 00H 64H 00H
4.6 按下列要求,写出各数据定义语句。 DB1为
10H个重复的字节数据序列:1,2,5个 3,4。
DB2为字符串‘STUDENTS’
DB3为十六进制数序列:12H,ABCDH 用等值语句给符号 COUNT赋以
DB1数据区所占字节数,该语句写在最后。 解答: 10
微机原理及应用(陈继红、徐晨)课后习题答案
DB1 DB 16 DUP(1,2,5 DUP(3),4) DB2 DB ‘STUDENTS’ DB3 DW 12H,0ABCDH COUNT EQU DB2-DB1
4.7 指令
OR AX,1234H OR 0FFH中两个
OR有什么差别?这两个操作数分别在什么时 候执行? 解答:(1)指令
OR AX,1234H OR 0FFH中的第一个 OR是指令系统中的 “或”指令,而 第二个
OR是表达式中表示逻辑 “或”关系的。(2)指令
OR AX,1234H OR 0FFH中的第一个 OR是在
CPU执行指令操作时才会执行。而第二个 OR是在汇编时就会将 1234H和 0FFH作
逻辑“或”运算,得到结果 12FFH。然后执行第一个 OR指令,完成 AX的内容与 12FFH的
逻辑“或”运算。
4.8 对于下面的数据定义,各条
MOV指令单独执行后,有关寄存器的内容是什么? PREP DB ?
TABA DW 5 DUP(?) TABB DB ‘NEXT’
TABC DD 12345678H
(1)MOV AX,TYPE PREP;AX=1 (2)MOV AX,TYPE TABA;AX=2 (3)MOV AX,LENGTH TABA;AX=5
(4)MOV AX,SIZE TABA;AX=10 (5)MOV AX,LENGTH TABB;AX=1 (6)MOV DX,SIZE TABC;AX=4
4.9 设数据段
DSEG中符号及数据定义如下,试写出数据在内存中的存储示意图。 (数据段
DSEG定义略 )
解答:
DAB DS:0100H
2FH 47H 4FH 54H 4FH 2FH 0DH 0AH 05H 13H 61H
DS:0113H
DS:0101H
DS:0114H
DS:0102H
DS:0115H
DS:0103H
DS:0116H
DS:0104H
DS:0117H
DS:0105H
DS:0118H
DS:0106H
DS:0119H
DS:0107H
DS:011AH
DBB DS:0108H
DS:011BH
DS:0109H
DDW DS:011CH
DS:010AH
DS:011DH
CCB DS:010BH
DS:011EH
DS:010CH
DS:011FH
DS:010DH
DS:0120H
DS:010EH
DS:0121H
DS:010FH
DS:0122H
DS:0110H