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

2018-12-22 18:48

EEH 00H - 01H 02H 01H 02H - 00H - 01H 02H 01H 02H -

BYTE_VAR 00H 00H 01H 00H 02H 00H ┇ ┇ ┇ - - FBH FFH 00H 59H 42H 45H 54H 56H 02H

WORD_VAR

将上面 内容再

重复4次

答:DW 5150H

DB 50H, 51H DB ?PQ‘ DW ?QP‘ ORG 5150H DW $

4.7 答:DATASG SEGMENT FLD1B DB ?personal computer‘ FLD2B DB 32 FLD3B DB 20H

FLD4B DB 01011001B FLD5B DB ?32654‘ FLD6B DB 10 DUP (0) FLD7B DB ?PART1‘, 20 DB ?PART2‘, 50 DB ?PART3‘, 14

FLD1W DW 0FFF0H FLD2W DW 01011001B FLD3W DW FLD7B FLD4W DW 5, 6, 7, 8, 9 FLD5W DW 5 DUP (0)

FLD6W DW FLD1W-FLD1B DATASG ENDS

4.8 PLENTH=22=16H,它表示变量PARTNO、PNAME、COUNT总共占用的存储单元数(字节数)。

4.9答:L=6。

4.10 (1) MOV AX, OFFSET LNAME

(2) MOV SI, WORD PTR CODE_LIST

(3) CODE_LENGTH EQU $ - CODE_LIST ;此语句必须放在CODE_LIST语句之后 4.11 DATA_SEG SEGMENT NUM DB 5

DATA_LIST DW -1, 0, 2, 5, 4, 5 DUP (?) MAX DW ? MIN DW ?

DATA_SEG ENDS

;---------------------------------------------------------------- CODE_SEG SEGMENT MAIN PROC FAR

ASSUME CS: CODE_SEG, DS: DATA_SEG START: PUSH DS ;设置返回DOS SUB AX, AX PUSH AX

MOV AX, DATA_SEG ;给DS赋值 MOV DS, AX ;

MOV CX, 4 ;程序段开始 LEA BX, DATA_LIST MOV AX, [BX] MOV MAX, AX MOV MIN, AX

ROUT1: ADD BX, 2 MOV AX, [BX] CMP AX, MAX JNGE ROUT2 MOV MAX, AX

ROUT2: CMP AX, MIN JNLE ROUT3 MOV MIN, AX

ROUT3: LOOP ROUT1 ;程序段结束 RET

MAIN ENDP

CODE_SEG ENDS

;---------------------------------------------------------------- END START

4.12 (1) ALPHA * 100 + BETA ;=2729H (2) ALPHA MOD GAMMA + BETA ;=19H

(3) (ALPHA +2) * BETA – 2 ;=9F4H (4) (BETA / 3) MOD 5 ;=3H

(5) (ALPHA +3) * (BETA MOD GAMMA) ;=67H (6) ALPHA GE GAMMA ;=0FFFFH (7) BETA AND 7 ;=01H (8) GAMMA OR 3 ;=03H 4.13 TABLEA DW 10 DUP (?)

TABLEB DB 10 DUP (?) TABLEC DB ?1234‘ ┇

MOV AX, LENGTH TABLEA ;汇编成MOV AX, 000AH MOV BL, LENGTH TABLEB ;汇编成MOV BL, 000AH MOV CL, LENGTH TABLEC ;汇编成MOV CL, 0001H 4.14 (1) MOV AX, TYPE FLDB ;(AX)=0001H (2) MOV AX, TYPE TABLEA ;(AX)=0002H (3) MOV CX, LENGTH TABLEA ;(CX)=0014H (4) MOV DX, SIZE TABLEA ;(DX)=0028H (5) MOV CX, LENGTH TABLEB ;(CX)=0001H

4.15 (1) DATA_SEG SEG ;DATA_SEG SEGMENT(伪操作错)

(2) SEGMENT ?CODE‘ ;SEGNAME SEGMENT ?CODE‘(缺少段名字) (3) MYDATA SEGMENT/DATA ;MYDATA SEGMENT

ENDS ;MYDATA ENDS(缺少段名字)

(4) MAIN_PROC PROC FAR ;删除END MAIN_PROC也可以

END MAIN_PROC ;MAIN_PROC ENDP ;上下两句交换位置

MAIN_PROC ENDP ; END MAIN_PROC 4.16 程序的框架如下:

DATA_SEG SEGMENT AT 0E000H ARRAY_B LABEL BYTE ARRAY_W DW 50 DUP (?)

DATA_SEG ENDS ;以上定义数据段

;---------------------------------------------------------------- STACK_SEG SEGMENT PARA STACK ?STACK‘ DW 100H DUP (?) TOS LABEL WORD

STACK_SEG ENDS ;以上定义堆栈段

;---------------------------------------------------------------- CODE_SEG SEGMENT MAIN PROC FAR

ASSUME CS: CODE_SEG, DS: DATA_SEG, SS: STACK_SEG ORG 1000H

START: MOV AX, STACK_SEG MOV SS, AX ;给SS赋值

MOV SP, OFFSET TOS ;给SP赋值 PUSH DS ;设置返回DOS SUB AX, AX PUSH AX

MOV AX, DATA_SEG

MOV DS, AX ;给DS赋值 ┇ ;程序段部分 RET

MAIN ENDP

CODE_SEG ENDS ;以上定义代码段

;---------------------------------------------------------------- END START

4.17答:程序如下: D_SEG SEGMENT AUGW LABEL WORD AUGEND DD 99251 SUM DD ?

D_SEG ENDS ;以上定义数据段

;---------------------------------------------------------------- E_SEG SEGMENT ADDW LABEL WORD ADDEND DD -15962

E_SEG ENDS ;以上定义附加段

;---------------------------------------------------------------- C_SEG SEGMENT MAIN PROC FAR

ASSUME CS: C_SEG, DS: D_SEG, ES: E_SEG START: PUSH DS ;设置返回DOS SUB AX, AX PUSH AX

MOV AX, D_SEG

MOV DS, AX ;给DS赋值 MOV AX, E_SEG

MOV ES, AX ;给ES赋值 ;

MOV AX, AUGW ;以下6条指令进行加法计算 MOV BX, AUGW+2 ADD AX, ES: ADDW

ADC BX, ES: ADDW+2 ;不考虑有符号数溢出 MOV WORD PTR SUM, AX MOV WORD PTR [SUM+2], BX RET

MAIN ENDP

C_SEG ENDS ;以上定义代码段

;---------------------------------------------------------------- END START

4.18 答:表示程序结束的微操作是指示汇编程序MASM结束汇编的标志,在源程序中用

END表示;结束程序执行的语句是结束程序运行而返回操作系统的指令,在源程序中有多种表示方法,比如INT 20H或MOV AX, 4C00H INT 21H以及RET等。 4.19 (1) MOV AL,BVAL ;不需要 (2) MOV DL,[BX] ;不需要 (3) SUB [BX],2 ;需要,如SUB BYTE PTR [BX],2

(4) MOV CL,WVAL ;需要,如MOV CL,BYTE PTR WVAL (5) ADD AL,BVAL+1 ;不需要

第五章

5.1答:程序段如下:

BEGIN: MOV AH, 1 ;从键盘输入一个字符的DOS调用 INT 21H

CMP AL, ?a‘ ;输入字符

CMP AL, ?z‘ ;输入字符>?z‘吗? JA STOP

SUB AL, 20H ;转换为大写字母,用AND AL, 1101 1111B也可 MOV DL, AL ;显示一个字符的DOS调用 MOV AH, 2 INT 21H JMP BEGIN STOP: RET

5.2答:程序段如下:

BEGIN: MOV AH, 1 ;从键盘输入一个字符的DOS调用


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

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

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

马上注册会员

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