微机原理与接口技术1-8习题解答王玉良 下载本文

XOR BX,BX XOR DX,DX XOR BP,BP NEXT: LODSB

CMP AL,90 JNC NEXT1 CMP AL,60 JNC NEXT2 INC BP

JMP DONE NEXT1:INC BX

JMP DONE

NEXT2:INC DX DONE: LOOP NEXT

MOV [DI],BX ADD DI,2 MOV [DI],DX ADD DI,2 MOV [DI],BP

MOV AH,4CH INT 21H CODE ENDS

;BX存放90~100分的学生个数 ;DX存放60~89分的学生个数 ;BP存放00~59分的学生个数 ;取学生分数 ;是否大干等于90分

;大于等于90分,转到BX+1

;是否大于等于60分 ;大干等于60分,转到DX+1

;小于60分,BP+1

;90~100分的个数加1

;60~89分的个数加1

END START

15.设有一数据块,共有100个字节,试找出数据块中最大者,并把它送至MAX单元中。

CODE SEGMENT

ASSUME CS:CODE,DS:CODE 0RG 100H

START:JMP BEGIN BUF

DB 12H,56H,0ABH,…,0FDH,00H;共100个字节无符号数

COUNT EQU $-BUF MAX DB ?

BEGIN:MOV AX,CS

MOV DS,AX

MOV SI,OFFSET BUF MOV CX,COUNT MOV AL,[SI] LOP1: INC SI

CMP AL,[SI] JG LOP2 XCHG AL,[SI] 坏原始数据。 LOP2: LOOP LOP1

;用MOV AL,[SI]似乎要好一些,不会破

MOV MAX,AL MOV AH,4CH INT 21H CODE ENDS 或:

DATA BUF

SEGMENT

DB 12H,56H,0ABH,…,0FDH,00H;共100个字节无符号数 END START

COUNT EQU $-BUF MAX DB ? DATA

ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA 0RG 100H

START:MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET BUF MOV CX,COUNT MOV AL,[SI] LOP1: INC SI

CMP AL,[SI] JG LOP2

XCHG AL,[SI] 始数据。

LOP2: LOOP LOP1

MOV MAX,AL MOV AH,4CH INT 21H CODE ENDS

END START

;用MOV AL,[SI]似乎要好一些,不会破坏原

19.在偏移量为First和Two的内存单元中,分别有两个双字节带符号数X和Y。试编一程序,若X<Y,则清除中断标志,否则就把方向标志置位。 解

DATA SEGMENT FIRST DW X TW0 DW Y DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET FIRST MOV AX,[SI]