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

loading 分享 2026-8-23 下载文档

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汇编语言程序设计课后习题答案(第二版 沈美明)) 的文档
相关推荐
相关阅读