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

发布时间 : 星期三 文章IBM_PC汇编语言程序的设计课后习题答案(第二版沈美明))更新完毕开始阅读

;--------------------------------------------------------------------------

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

PUSH AX

MOV AX, DSEG

MOV DS, AX ;给DS赋值

BEGIN: MOV BX, 0 ;字母字符计数器

MOV SI, 0 ;数字字符计数器

MOV DI, 0 ;其它字符计数器

INPUT: MOV AH, 1 ;输入一个字符

INT 21H

CMP AL, 0DH ;是回车符吗?

JE DISP

CMP AL, 30H ;<数字0吗?

JAE NEXT1

OTHER: INC DI ;是其它字符

联系合同范文客服:xxxxx#qq.com(#替换为@)