文档详情

微机原理与接口技术4-8习题解答王玉良.doc

发布:2017-06-21约4.85万字共65页下载文档
文本预览下载声明
4.1 试编一程序,把地址偏移量为100H单元开始的256个单元分别写入00H,01 H,02H,03H,…,FFH数据。 4.1解:源程序如下 DATA SEGMENT ORG 100H BUFl DB 256 DUP(?) COUNT EQU$-BUFl DATA ENDS CODE SEGMENT ASSUME CS: CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUFl MOV CX,COUNT XOR AL,AL NEXT: MOV[SI],AL INC AL INC SI LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START 4.2 统计上题写入的数据块中0元素、正元素、负元素的个数,并分别把统计结果送人上述数据块之后的三个单元中。 4.2解: DATA SEGMENT ORG 100H BUFl DB 00H,01H,02H,……,FEH,FFH;共256个数据 COUNT EQU$-BUFl DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUFl MOC CX,COUNT XOR BX,BX ;BL与BH分别存放正、负元素的个数 XOR DH,DH ;DH寄存器存放O元素个数 NEXT2: MOV AL,[SI] CMP AL,0 JZ ZERO ;若ZF=1,则为O,转至ZERO,DH+1 JS NEGAT ;若SF=0 则为负数,BH+1 JMP PLUS ;既不是O又不是负,则为正数,BL+1 ZERO: INC DH ;O的个数加1 JMP NEXT3 NEGAT: INC BH ;负数个数加1 JMP NEXT3 PLUS: INC BL ;正数个数加1 NEXT3: INC SI ;修改地址指针SI LOOP NEXT2 ;未完,继续循环 MOV[SI],DH ;存人O元素个数统计结果 INC SI MOV[SI],BX ;存人正、负数个数统计结果 MOV AH,4CH INT 21H CODE ENDS END START 4.3 用DOS功能调用显示上面两题中数据块各单元(包括统计结果)内容。为了显示清晰明了,要求每行显示16个数据,两个数据之间用空格分开。 4.3解:把上述三题4.1,4.2,4.3结合起来综合编程如下: DATA SEGMENT ORG 100H ;数据块在段中的偏移地址为100H BUFl DB 259 DUP(?) ;256个单元存放数据,3个单元存放结果 COUNT EQU$-BUFl ;数据块长度为COUNT DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUFl MOV CX,COUNT-3 ;数据块为256个单元(259-3) XOR AL,AL ;AL清O NEXT1:MOV[SI],AL ;存人数据00H,01H,…,FFH INC AL INC SI LOO
显示全部
相似文档