IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明))

2026/4/23 22:18:46

A DW ? B DW ? C DW ? D DW 0 DSEG ENDS

-------------------------------------------------------------------------- CSEG SEGMENT MAIN PROC FAR

ASSUME CS: CSEG, DS: DSEG START: PUSH DS ;设置返回DOS SUB AX, AX PUSH AX MOV AX, DSEG

MOV DS, AX ;给DS赋值 BEGIN: CMP A, 0 JE NEXT CMP B, 0 JE NEXT CMP C, 0 JE NEXT MOV AX, A ADD AX, B

ADD AX, C MOV D, AX JMP SHORT EXIT NEXT: MOV A, 0 MOV B, 0 MOV C, 0 EXIT: RET MAIN ENDP

CSEG ENDS ;以上定义代码段

-------------------------------------------------------------------------- END START

5.21 试编写一程序,要求比较数组ARRAY中的三个16位补码数,并根据比较结果在终端上显示如下信息: (1) 如果三个数都不相等则显示0; (2) 如果三个数有二个数相等则显示1; (3) 如果三个数都相等则显示2。 答:程序如下: DSEG SEGMENT ARRAY DW 3 DUP (?) DSEG ENDS

-------------------------------------------------------------------------- CSEG SEGMENT

MAIN PROC FAR

ASSUME CS: CSEG, DS: DSEG START: PUSH DS ;设置返回DOS SUB AX, AX PUSH AX MOV AX, DSEG

MOV DS, AX ;给DS赋值 BEGIN: LEA SI, ARRAY

MOV DX, 0 ;(DX)用于存放所求的结果 MOV AX, [SI] MOV BX, [SI+2]

CMP AX, BX ;比较第一和第二两个数是否相等 JNE NEXT1 INC DX

NEXT1: CMP [SI+4], AX ;比较第一和第三两个数是否相等 JNE NEXT2 INC DX

NEXT2: CMP [SI+4], BX ;比较第二和第三两个数是否相等 JNE NUM INC DX

NUM: CMP DX, 3 JL DISP DEC DX

DISP: ADD DL, 30H ;转换为ASCII码

MOV AH, 2 ;显示一个字符 INT 21H RET MAIN ENDP

CSEG ENDS ;以上定义代码段

-------------------------------------------------------------------------- END START

5.22 从键盘输入一系列字符(以回车符结束),并按字母、数字、及其它字符分类计数,最后显示出这三类的计数结果。 答:程序如下: DSEG SEGMENT

ALPHABET DB ‘输入的字母字符个数为:’, ‘$’ NUMBER DB ‘输入的数字字符个数为:’, ‘$’ OTHER DB ‘输入的其它字符个数为:’, ‘$’ CRLF DB 0DH, 0AH, ‘$’ DSEG ENDS

-------------------------------------------------------------------------- CSEG SEGMENT MAIN PROC FAR

ASSUME CS: CSEG, DS: DSEG START: PUSH DS ;设置返回DOS SUB AX, AX


IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明)).doc 将本文的Word文档下载到电脑
搜索更多关于: IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明)) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

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

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