第一范文网 - 专业文章范例文档资料分享平台

微机原理作业及参考答案

来源:用户分享 时间:2025/6/8 21:19:22 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

CMP AX,X JL N_HIGH MOV BX,X SUB BX,Y JO OVERFLOW JNS NEXT NEG BX

NEXT: MOV RESULT,BX

N_HIGH: …… OVERFLOW: ……

第四章 汇编语言程序设计(P195)

4-2 内存分配和预置数据

VAR1 DB 12,-12H,3 DUP(0,0FFH) VAR2 DB 100 DUP(0,2 DUP(1,2),0,3) VAR3 DB ‘WELCOME TO’

VAR4 DW VAR3+6 ;取其偏移量给VAR4

VAR5 DD VAR3 ;取其偏移量和段基址给VAR5 4-3

(1)DATA1 DB 86H,27H,23H,00H,24H,1AH (2)DATA2 DW 0B430H,1062H

(3)DATA3 DB 4DUP(20H),20,0,6DUP(1,2)

4-4 (1)2 (2)2 (3)1 (4)10 4-5

(1)VAR1的偏移量是0030H;VAR2的偏移量是003AH (2)CNT=0010H

(3)VAR2+2单元的内容是02H

4-10 DATA X DB Y DB Z DB

SEGMENT 4 DUP(?) 4 DUP(?)

4 DUP(?),0

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

DATA ENDS

CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,WORD PTR X[0] ADD AX,WORD PTR Y[0] ;X,Y低16位相加 MOV WORD PTR Z[0],AX ;结果存入Z的低16位 MOV AX,WORD PTR X[2] ADC AX,WORD PTR Y[2] ;X,Y高16位相加 MOV WORD PTR Z[2],AX ;结果存入Z的高16位 JNC OK MOV AL,1 MOV Z+4,AL ;保存进位 OK: MOV AH,4CH INT 21H CODE ENDS END START

4-11

DATA SEGMENT X DB 4 DUP(?) Y DB 4 DUP(?) Z DB 4 DUP(?) ;定义X,Y,Z为字节变量 DATA ENDS

CODE SEGMENT

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

MOV AX,WORD PTR X

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

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

SBB AX,WORD PTR Y[2] ;X,Y高16位相加

MOV WORD PTR Z[2],AX ;结果存入Z的高16位 JNO OK

MOV DL,-1 ;溢出 OK: MOV AH,4CH INT 21H 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 AX,0 PUSH AX MOV 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 P0: ... RET ... 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 DW P0,P1,P2,P3,P4,P5,P6,P7,P8,P9 MESG DB 'ERROR INPUT!$' DATA ENDS

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

STACK ENDS

CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV 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

搜索更多关于: 微机原理作业及参考答案 的文档
微机原理作业及参考答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4ahfl0kpd04oweh0pit6_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top