微机原理作业及参考答案

2026/1/26 21:15:29

4-11 DATA X DB Y DB Z DB DATA CODE

SEGMENT

4 DUP(?) 4 DUP(?) 4 DUP(?) ENDS SEGMENT

CS:CODE,DS:DATA AX,DATA

;定义X,Y,Z为字节变量

ASSUME

START: MOV

MOV MOV MOV SUB MOV

MOV SBB MOV

DS,AX

DL,0

AX,WORD PTR X AX,WORD PTR Y ;X,Y低16位相减

WORD PTR Z,AX ;结果存入Z的低16位 AX,WORD PTR X[2]

AX,WORD PTR Y[2] ;X,Y高16位相加 WORD PTR Z[2],AX ;结果存入Z的高16位

JNO OK

MOV DL,-1 ;溢出

AH,4CH

INT 21H

OK: MOV

CODE ENDS END START

4-12 (1) DATA

SEGMENT

DB 100 DUP(?)

MESG DB 'ERROR INPUT!$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC FAR PUSH DS

MOV PUSH MOV

AX,0 AX AX,DATA

MOV DS,AX

MOV AH,01H

INT 21H ;从键盘输入一个字符,该字符ASCII码送入AL CMP

AL,41H

JB ERROR CMP AL,4AH JA ERROR

CMP AL,41H

JE P0 ;判断输入字符是为'A',则跳转到P0 ... CMP AL,4AH

JE P9 ;判断输入字符是为'J',则跳转到P9 RET

P0: ... ... P9: ...

RET

ERROR: MOV DX,OFFSET MESG MOV AH,09H INT 21H ;输入字符非'A'~'J'则输出错误信息 RET START ENDP CODE ENDS END START (2) DATA SEGMENT BASE DATA STACK DB STACK

DW P0,P1,P2,P3,P4,P5,P6,P7,P8,P9 ENDS

SEGMENT PARA STACK 'STACK' 100 DUP(?) ENDS

MESG DB 'ERROR INPUT!$'

CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC FAR PUSH DS MOV AX,0

PUSH MOV MOV MOV

AX AX,DATA

DS,AX BX,0 ;BX为跳转表BASE内寻址编号,清零

MOV AH,01H

INT 21H ;从键盘输入字符命令 CMP

AL,41H

JB ERROR CMP AL,4AH

JA ERROR ;输入字符非'A'~'J'则跳转到ERROR MOV BL,AL

SUB BL,41H ;得编号 SHL BX,1 ;表内偏移量=编号*2

JMP BASE[BX];查跳转表跳转到相应的子程序

ERROR: MOV

DX,OFFSET MESG

MOV AH,09H

INT 21H ;输出错误信息

RET P0: ...

RET ...

P9: ... RET START ENDP CODE ENDS END START 4-13 CODE

SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV GOOD,0

MOV PASS,0

MOV BAD,0

XOR BX,BX ;bx存放全年级统计总成绩 XOR SI,SI MOV CX,100 LP: MOV AH,BUF[SI] CMP AH,85H JA CMP JAE

GS

AH,60H PS

MOV AL,BAD ADD AL,1 DAA MOV BAD,AL JMP AGAIN GS: MOV AL,GOOD ADD AL,1 DAA MOV GOOD,AL JMP AGAIN PS: MOV AL,PASS ADD AL,1 DAA MOV PASS,AL

AGAIN: MOV AL,BL ADD AL,AH DAA MOV BL,AL MOV AL,BH ADC AL,0 DAA

MOV BH,AL INC SI LOOP LP

MOV AVRG,BH MOV AH,4CH INT 21H CODE ENDS

END

START

4-15 DATA FIRST

SEGMENT

DB '...$' ;定义字符串

100 ;定义字符串长度 ;定义存放结果单元

COUNT EQU

RESULT DW ? DATA STACK DB STACK

ENDS

SEGMENT PARA STACK 'STACK' 100 DUP(?) ENDS

CODE SEGMENT ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA MOV DS,AX MOV BX,OFFSET FIRST ;建立数据指针

MOV MOV

CX,COUNT ;设置循环次数 DX,0 ;清零计数器

LP: CMP BYTE PTR [BX],'A'

JNZ NEXT ;非'A'则转到NEXT INC DX ;是'A'则计数器DX加1 NEXT: INC BX ;调整数据指针

LOOP MOV MOV INT 21H

ENDS

START

END

LP

;循环100次

RESULT,DX ;结果存入RESULT AH,4CH

CODE

4-17


微机原理作业及参考答案.doc 将本文的Word文档下载到电脑
搜索更多关于: 微机原理作业及参考答案 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

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