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

INT 21H 解

①CX=2180H,CF=1B ②[SI]=80H,[SI+1]=21H ③[SI]=01H,MEM=32700H ④[SI]=00H,ZFCFPF=111B ⑤AX=000FH,CFAF=00B ⑥AX=0105H,CFAF=11B ⑦AL=5EH,CFAF=00B ⑧AL=64H ⑨BX=0008H ⑩AX=0018H ⑾AX=FF18H

⑿AX=FFE3H,DX=0000H 第4章 习题及参考解答

1.试编一程序,把地址偏移量为100H单元开始的256个单元分别写入00H,01H,02H,03H,…,FFH数据。 解 源程序如下 DATA

SEGMENT ORG 100H DB 256 DUP(?) EQU $-BUF1

BUF1 COUNT

DATA STK

ENDS

SEGMENT STACK DB 100 DUP(?) ENDS

STK

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET BUF1 ;戓 LEA SI,BUF1 MOV CX,COUNT XOR AL,AL

NEXT:

MOV [SI],AL

;或 MOV AL,00H

INC AL INC SI LOOP NEXT MOV AH,4CH INT 21 H

CODE

2.统计上题写入的数据块中0元素、正元素、负元素的个数,并分别把统计结果送入上述数据块之后的三个单元中。

ENDS END START

解 DATA

SEGMENT ORG 100H

;共256个数据

BUF1 DB 00H,01H.02H,…,0FEH,0FFH COUNT EOU$-BUF1

DB 3 DUP(?)

DATA ENDS STK SEGMENT STACK DB 100 DUP(?) STK

ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV S1,OFFSET BUF1 MOC CX,COUNT XOR BX,BX

XOR DH,DH

NEXT2: MOV AL,[SI]

CMP AL,0 JZ ZER0 JS NEGAT

BL与BH分别存放正、负元素的个数 DH寄存器存放0元素个数

若ZF=1,则为0,转至ZERO,DH+1 SF=0则为负数,BH+1

;;

;;若INC BL

JMP NEXT3

;既不是0又不是负,则为正数,BL+1

ZERO: INC DH

JMP NEXT3

;0的个数加1

NEGAT:INC BH NEXT3: INC SI

;负数个数加1 ;修改地址指针SI ;未完,继续循环

;存入0元素个数统计结果

LOOP NEXT2 MOV [SI],DH INC SI

MOV [SI],BX MOV AH,4CH INT 21H

;存入正、负数个数统计结果

CODE ENDS

4.把地址偏移量为STRG1单元开始的128个单元的内容传送到地址偏移量为STRG2开始的单元中。 解

DATA SEGMENT

STRGl DB XXH,XXH,XXH,….XXH ;1 28个数据 COUNT EOU$-STRGl STRG2 DB 128 DUP(?)

END START