汇编答案(完整版)(2)

2018-12-22 18:48

MOV SI, SEG CONAME MOV DS, SI MOV ES, SI

LEA SI, CONAME LEA DI, PRLINE REP MOVSB (2) MOV CX, 20 STD

MOV SI, SEG CONAME MOV DS, SI MOV ES, SI

LEA SI, CONAME ADD SI, 20-1 LEA DI, PRLINE ADD DI, 20-1 REP MOVSB

(3) MOV AX, WORD PTR CONAME+3-1 (4) MOV WORD PTR PRLINE +5, AX

(5) MOV AL, ? ‘ ;空格的ASCII码送AL寄存器 CLD

MOV DI, SEG CONAME MOV ES, DI

LEA DI, CONAME REPNE SCASB JNE NEXT DEC DI

MOV BX, DI NEXT: ┇

3.30 MOV CX, 18 MOV AL, ?&‘ CLD

MOV DI, SEG STRING MOV ES, DI

LEA DI, STRING REPNE SCASB JNE NEXT DEC DI

MOV ES:BYTE PTR [DI], ? ‘ ;送空格符 NEXT: ┇

3.31答:公共的程序段如下: MOV DI, DS MOV ES, DI (1) MOV CX, 132

MOV AL., ? ‘ ;空格的ASCII码送AL寄存器

CLD

LEA DI, PRINT_LINE REP STOSB (2) MOV CX, 9 MOV AL., ?-‘ CLD

LEA DI, STUDENT_ ADDR REPNE SCASB JNE NO_DASH DEC DI

NO_DASH: ┇ (3) MOV CX, 9 MOV AL., ?-‘ STD

LEA DI, STUDENT_ ADDR ADD DI, 9-1 REPNE SCASB JNE NO_DASH INC DI

NO_DASH: ┇ (4) MOV CX, 30

MOV AL, ? ‘ ;空格的ASCII码送AL寄存器 CLD

LEA DI, STUDENT_NAME REPE SCASB JNE NEXT MOV CX, 30

MOV AL, ?*‘ ;―*‖的ASCII码送AL寄存器 LEA DI, STUDENT_NAME REP STOSB NEXT: ┇

(5) MOV CX, 30 CLD

LEA SI, STUDENT_NAME LEA DI, PRINT_LINE REP MOVSB MOV CX, 9 STD

LEA SI, STUDENT_ADDR+9-1 LEA DI, PRINT_LINE+132-1 REP MOVSB 3.32 MOV CX, 5 CLD

MOV DI, SEG OLDS

MOV DS, DI MOV ES, DI LEA SI, OLDS LEA DI, NEWS REPE CMPSB JNE NEW_LESS ┇

NEW_LESS: ┇

3.33 (1) CMP DX, CX JA EXCEED (2) CMP BX, AX JG EXCEED (3) JCXZ ZERO (4) CMP BX, AX JO OVERFLOW

(5) CMP BX, AX JLE EQ_SMA (6) CMP DX, CX JBE EQ_SMA 3.34 (1) 转向L1 (2) 转向L1 (3) 转向L2

(4) 转向L5 ;因为加法指令后AX中已经是6FF3H (5) 转向L5 ;因为加法指令后AX中已经是4A14H

3.35 (1) JNB、JBE、JNL、JLE (2) JNB、JBE、JNL、JLE (3) JNB、JNBE、JL、JLE (4) JNB、JNBE、JNL、JNLE (5) JNB、JNBE、JL、JLE (6) JB、JBE、JL、JLE (7) JB、JBE、JNL、JNLE (8) JNB、JNBE、JL、JLE

3.36 答:此程序段判断p*2>q,则使(AX)=1后退出;p*2≤q,则使(AX)=2后退出。 3.37程序段如下: MOV AL, STATUS

AND AL, 00010101B ;只保留第1、3、5位 JZ ROUTINE_4 ;3位全为0转ROUTINE_4 JPE ROUTINE_2 ;两位为1转ROUTINE_2 CMP AL, 00010101B

JZ ROUTINE_1 ;3位全为1转ROUTINE_1 ROUTINE_3: ┇ ;仅一位为1执行ROUTINE_3 JMP EXIT

ROUTINE_1: ┇ JMP EXIT

ROUTINE_2: ┇ JMP EXIT

ROUTINE_4: ┇ EXIT: INT 20H

3.38 (1) (AX)=5H,(BX)=10H,(CX)=0H,(DX)=0H (2) (AX)=2H,(BX)=4H,(CX)=3H,(DX)=1H (3) (AX)=3H,(BX)=7H,(CX)=2H,(DX)=0H 3.40 (1) PA=(DS)*10H+EA=00100H+00001000H+00002000H=00003100H (2) PA=(DS)*10H+EA=00100H+00001000H+2*00002000H=00005100H

(3) PA=(DS)*10H+EA=00100H+00002000H+4*00001000H+1000H=00007100H 3.4 (1) 目的地址为DS:2000H,内容依次为:56H,0F4H,23H和98H (2) 目的地址为DS:348CH,内容依次为:91H,34H,0F2H和01H (3) 目的操作数为EBX寄存器,(EBX)=4CA26D92H 3.42 (1) PUSH AX ;将(AX)压入堆栈

(2) POP ESI ;将堆栈中的双字弹出到ESI寄存器中

(3) PUSH [BX] ;将((BX))对应存储单元中的字压入堆栈 (4) PUSHAD ;32位通用寄存器依次进栈

(5) POP DS ;将堆栈中的字弹出到DS寄存器中 (6) PUSH 4 ;将立即数4以字的方式压入堆栈

3.43 (1) MOV EAX,299FF94H ADD EAX,34FFFFH ;(EAX)= 2CEFF93H (2) MOV EBX,40000000 SUB EBX,1500000 ;(EBX)= 3EB00000H (3) MOV EAX,39393834H AND EAX,0F0F0F0FH ;(EAX)= 09090804H (4) MOV EDX,9FE35DH XOR EDX,0F0F0F0H ;(EDX)= 6F13ADH 3.44 (1) MOV BX,-12 MOVSX EBX,BX ;(EBX)= 0FFFF FFF4H (2) MOV CL,-8 MOVSX EDX,CL ;(EDX)= 0FFFF FFF8H (3) MOV AH,7 MOVZX ECX,AH ;(ECX)= 0000 0007H (4) MOV AX,99H MOVZX EBX,AX ;(EBX)= 0000 0099H 3.45 MOV ECX,307 F455H

BSF EAX,ECX ;(EAX)= 0D BSR EBX,ECX ;(EBX)= 25D 3.46 MOV BX,98H

BSF AX,BX ;(AX)= 3D BSR DX,BX ;(DX)= 7D

3.47 MOV EDI,0 也可为: MOV EDI,ECX ADD EDI,ECX ADD EDI,EDX ADD EDI,EDX ADD EDI,ESI ADD EDI,ESI 3.48 (BX)←(DX)*100H 3.49 MOV AL,BL

MOV AH,0 ;假定为无符号数,否则用CBW指令即可 DIV CL

MOV AH,0 SHL AX,1 MOV DX,AX

3.50答:JMP DI是转移到以(DI)内容为偏移地址的单元去执行指令;JMP [DI]是转移到 以(DI)间接寻址的内存单元内容为偏移地址的单元去执行指令。 3.51 JMP BEGIN UP DB 0 DOWN DB 0

TABLE DB 100H DUP (?) ;数组 BEGIN:

MOV CX,100H MOV BX,-1 MOV SI,0 MOV DI,0 L1:INC BX

CMP TABLE[BX],42H JA L2 JB L3

JMP L4 L2:INC SI JMP L4 L3:INC DI L4:LOOP L1 MOV UP,SI MOV DOWN,DI

第四章

4.1 (1) MOV AH, BX ;寄存器类型不匹配 (2) MOV [BX], [SI] ;不能都是存储器操作数 (3) MOV AX, [SI][DI] ;[SI]和[DI]不能一起使用

(4) MOV MYDAT [BX][SI], ES:AX ;AX寄存器不能使用段超越 (5) MOV BYTE PTR [BX], 1000 ;1000超过了一个字节的范围

(6) MOV BX, OFFSET MYDAT [SI] ;MYDAT [SI]已经是偏移地址,不能再使用OFFSET (7) MOV CS, AX ;CS不能用作目的寄存器

(8) MOV ECX, AX ;两个操作数的数据类型不同

4.2 (1) CMP 15, BX ;错,立即数不能作为目的操作数 (2) CMP OP1, 25 (3) CMP OP1, OP2 ;错,不能都是存储器操作数

(4) CMP AX, OP1 ;错,类型不匹配,应为CMP ax, word ptr op1 4.3 (1) MOV BP, AL ;错,寄存器类型不匹配 (2) MOV WORD_OP [BX+4*3][DI], SP

(3) MOV WORD_OP1, WORD_OP2 ;错,不能都是存储器操作数 (4) MOV AX, WORD_OP1[DX] ;错,DX不能用于存储器寻址

(5) MOV SAVE_WORD, DS (6) MOV SP, SS:DATA_WORD [BX][SI] (7) MOV [BX][SI], 2 ;错,[BX][SI]未指出数据类型 (8) MOV AX, WORD_OP1+WORD_OP2 (9) MOV AX, WORD_OP1-WORD_OP2+100

(10) MOV WORD_OP1, WORD_OP1-WORD_OP2

4.4 (1) ADD VAR1, VAR2 ;不能都是存储器操作数 (2) SUB AL, VAR1 ;数据类型不匹配 (3) JMP LAB [SI] ;LAB是标号而不是变量名,后面不能加[SI]

(4) JNZ VAR1 ;VAR1是变量而不是标号 (5) JMP NEAR LAB ;应使用NEAR PTR 4.5 画图说明下列语句所分配的存储空间及初始化的数据值。 (1) BYTE_VAR DB ?BYTE‘,12,-12H,3 DUP(0,?,2 DUP(1,2),?) (2) WORD_VAR DW 5 DUP(0,1,2),?,-5,?BY‘,?TE‘,256H 答:答案如下图所示。

4.6 试列出各种方法,使汇编程序把5150H存入一个存储器字中(如:DW 5150H)。 4.5题答案 42H 59H 54H 45H 0DH


汇编答案(完整版)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:虚拟仪器实验报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: