第1-7章答案

loading 分享 2026-7-17 下载文档

第6章作业

6.2* 请计算如下各数值表达式的值: (1)23H AND 45H OR 67H 答:表达式的值为67H (2)1234H/16+10H

答:表达式的值为133H

(3)NOT ( 65535 XOR 1234H ) 答:表达式的值为1234H (4)1024 MOD 7+3

答:表达式的值为149

(5)LOW 1234 OR HIGH 5678H

答:即6EH OR 56H,故表达式的值为7EH (6)23H SHL 4

答:表达式的值为230H (7)’E’ GE 45 XOR -1

答:即0FFFFH XOR 0FFFFH,表达式的值为00H (8)’a’ AND ( NOT ( ‘a’ – ‘A’ ) ) 答:表达式的值为41H

6.3 计算下列地址表达式的值,设BX=1000H,SI=2000H,DI=3000H,BP=4000H: (1)[BX + 100H]

答:EA=1000H+ 100H=1100H (2)[DI][BP]

答:EA=4000H+3000H=7000H (3)2000H[SI]

答:EA=2000H+2000H=4000H (4)10H[BX][SI]

答:EA=1000H+2000H+10H=3010H (5)[BP-128]

答:EA=4000H-128=4000H-80H=3F80H (6)[BX][DI-2]

答:EA=1000H+3000H-2=3FFEH

6.4 定义的数据段如下,请根据该数据段画出该段中数据存储的形式。

DATA SEGMENT

STR1 DB 0,1,2,3,4,5 STR2 DB ‘012345’ COUNT EQU 30

NUMB DB 4 DUP(2) NUMW DW 0FH,-80H POIN DW 0

DATA ENDS

答:该段中数据存储如下:

变量 STR1

存储数据 0 105

段内偏移(EA) 0000H

STR2 NUMB NUMW POIN 1 2 3 4 5 0001H 0002H 0003H 0004H 0005H ‘0’ 0006H ‘1’ 0007H ‘2’ 0008H ‘3’ 0009H ‘4’ 000AH ‘5’ 000BH 2 2 2 2 0FH 00H 80H 0FFH 0 0 000CH 000DH 000EH 000FH 0010H 0011H 0012H 0013H 0014H 0015H 6.5 根据题6.4定义的数据段,请写出下列程序段中各语句执行后寄存器的内容,并指出源操作数的寻址方式。

MOV BX,OFFSET STR1+3 答:BX=0003H,立即寻址 MOV SI,OFFSET STR2 答:SI=0006H,立即寻址 MOV CL,COUNT

答:CL=1EH,立即寻址 MOV DX,WORD PTR NUMB 答:DX=0202H,直接寻址 MOV BP,NUMW+2

答:BP=0FF80H,直接寻址 MOV AL,3[SI] 答:AL=‘3’,相对基址寻址 MOV AH,[SI+BX+1] 答:AH=‘4’,相对基址变址寻址 MOV CH,BYTE PTR NUMW+3 答:CH=0FFH,直接寻址

6.6* 自12F8:0000开始的内存单元中存放以下数据(用十六进制形式表示):28 09 16 B5 A6 68 00 00,试分别写出12F8:0000单元开始的字节型数据、字型数据及双字型数据的值。

答:12F8:0000单元开始的字节型数据是:28H 09H 16H B5H A6H 68H 12F8:0000单元开始的字型数据是:0928H B516H 68A6H 12F8:0000单元开始的双字型数据是:B5160928H 000068A6H

106

6.7* 某程序中的数据段内容如下所示,请指出变量BUF和NUM的偏移地址为多少?

DATA SEGMENT

ORG 10

BUF DB 'ABCDE' ;10-14 ORG ﹩+5 ;15+5 NUM DW 50 DATA ENDS

答:变量BUF的偏移地址为000AH,变量NUM的偏移地址为0014H 6.8 变量D1和D2定义如下:

D1 DB 20 DUP(?) D2 DW D1

请写出取变量D1的偏移地址到寄存器SI中的三种方法。 答:① LEA SI, D1 ② MOV SI, OFFSET D1 ③ MOV SI, D2 6.9* 求下列指令汇编的结果。

MOV AX,68/9

答:汇编语言指令为:MOV AX,3FH MOV AX,75 MOD 6

答:汇编语言指令为:MOV AX,03H MOV AX,123*4

答:汇编语言指令为:MOV AX,1ECH MOV AL,49H SHL 3

答:汇编语言指令为:MOV AL,48H MOV AL,68H SHR 2

答:汇编语言指令为:MOV AL,17H MOV AL,NOT 0A5H

答:汇编语言指令为:MOV AL,5AH AND AL,46H AND 0F0H

答:汇编语言指令为:AND AL,40H MOV AL,78H OR 20H

答:汇编语言指令为:MOV AL,78H XOR AL,90H XOR 0F4H

答:汇编语言指令为:XOR AL,64H MOV AL,63H EQ 2

答:汇编语言指令为:MOV AL,00H MOV AL,45H GT 45

答:汇编语言指令为:MOV AL,0FFH

6.10 设如下两条指令中的符号ABCD是变量名,请说明这两条指令的异同。

MOV AX, OFFSET ABCD LEA AX, ABCD

答:两条指令的形式不同但功能相同,都是传送变量ABCD的偏移地址,前者是MOV指令后者是LEA指令。

6.11* 请指出如下指令中的不明确之处,并使其明确: (1)MOV ES:[BP],5

答:指令可改写为:MOV BYTE PTR ES:[BP],5

107

(2)ADD CS:[1000H],10H

答:指令可改写为:ADD BYTE PTR ES:[1000H],10H (3)DEC SS:[BX-8]

答:指令可改写为:DEC BYTE PTR SS:[BX-8] (4)JMP CS:[SI+1000H]

答:指令可改写为:JMP DWORD PTR [SI+1000H]

6.12* 设在某个程序中有如下片段,请改正其中有错误的指令语句:

VARW DW 1234H,5678H VARB DB 3,4

VARD DD 12345678H … …

MOV AX,VARB (可改为:MOV AX,VARW 或 MOV AX,WORD PTR VARB) MOV VARD,BX (可改为:MOV VARW, BX 或 MOV WORD PTR VARD,BX) MOV VARD+2,ES (可改为:MOV VARW+2,ES 或 MOV WORD PTR VARD+2,ES) MOV CL,VARW+3 (可改为:MOV CL, VARB+2 或 MOV CL, BYTE PTR VARW+3) LES DI,VARW (正确)

第7章作业

1.实现W=(3X+6Y)*4-8Z,设X=5, Y=3, Z=19 解:源程序如下:

DSEG SEGMENT

X DB 5 Y DB 3 Z DB 19 W DW ? DSEG ENDS CSEG SEGMENT

ASSUME CS:CSEG, DS:DSEG

MOV AX, DSEG MOV DS, AX

BEGIN: MOV AL, X

MOV BL, AL SHL AL, 1

ADD AL, BL ; AL=3X MOV BL, Y SHL BL, 1 MOV BH, BL SHL BL, 1

ADD BL, BH ; BL=6Y

ADD AL, BL ; AL=(3X+6Y) MOV BL, 4

MUL BL ; AX=(3X+6Y)*4 MOV BX, AX ; BX=(3X+6Y)*4 MOV AL, Z

108


第1-7章答案.doc 将本文的Word文档下载到电脑
搜索更多关于: 第1-7章答案 的文档
相关推荐
相关阅读