文档详情

《计算机硬件技术基》实验答案程序.doc

发布:2015-12-24约字共31页下载文档
文本预览下载声明
实验一:简单程序设计实验 (1)编写一个 32 位无符号数除法的程序,要求将存放在 NUM1 中的 32 位无符号数与存放 在 NUM2 中的 16 位无符号数相除,结果存放在 NUM3 和 NUM4 中。 程序流程图略。 参考源程序: DATA SEGMENT NUM1 DD 2A8B7654H NUM2 DW 5ABCH NUM3 DW ? NUM4 DW ? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA ;数据段寄存器初始化 MOV DS,AX MOV AX, WORD PTR NUM1 MOV DX, WORD PTR NUM1+2 DIV NUM2 MOV NUM3,AX MOV NUM4,DX MOV AH,4CH ;正常返回DOS系统 INT 21H CODE ENDS END START (2)编写一个拆字程序。要求将存放在 ARY 单元的 2 位十六进制数 X1X2 拆为 X1 和 X2 两 部分,并以 0X1 和 0X2 的形式分别存入 ARY+1 和 ARY+2 单元中。 程序流程图略。 参考源程序: DATA SEGMENT ARY DB 2AH,?,? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET ARY ;取ARY的偏移地址 MOV AL,[SI] ;取16进制数至AL MOV BL,AL AND AL,0F0H ;取16进制数的高四位,即X1 SHR AL,4 MOV [SI+1],AL ;存0X1 MOV AL,BL AND AL,0FH ;取16进制数的低四位,即X2 MOV [SI+2],AL ;存0X2 MOV AH,4CH INT 21H CODE ENDS END START 实验二:分支程序设计实验 (1)编写一个字符比较程序,比较 3 个无符号字节数 A,B,C 的大小,并根据比较结果 对变量 K 赋值: 如果 3 个数不相等,则 K=0; 如果 3 个数中有两个相等,则 K=1; 如果 3 个数都相等,则 K=2。 程序流程图略。 参考源程序: DATA SEGMENT ;定义待比较数A、B、C,比较结果K A DB 20H B DB 20H C DB 20H K DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,A CMP AL,B ;对A、B进行比较,不相等则转到COMP2 JNE COMP2 ;相等则比较A、C CMP AL,C JNE K1 ;A、C不相等则K=1 JMP K2 ;A、C相等则K=2 COMP2: MOV BL,B CMP BL,C JE K1 ;对B、C进行比较,相等则K=1 CMP AL,C JE K1 ;对A、C进行比较,相等则K=1 K0: MOV K,0 JMP EXIT K1: MOV K,1 JMP EXIT K2: MOV K,2 EXIT: MOV AH,4CH INT 21H CODE ENDS END START (2)编写一个能实现下列表达式的程序: ? N = ? A + B A ≤ B  设 A,B,C 为小于 128 的正整数。 ? A ? B + C 程序流程图略。 参考源程序: DATA SEGMENT A B A DB 22H ;定义 A、B、C、N B DB 10H C DB 01H N DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL, A CMP AL, B JG CALCUL ;A 小于或等于 B 则 N=A+B ADD AL,B JMP EXIT CALCUL: SUB AL, B ADC AL, C EXIT: MOV N, AL MOV AH,4CH INT 21H CODE ENDS END START 实验三 循环程序设计实验 (1)将字符串STRN(以“$”结尾)中的每一个字符均加上偶校验位,并统计有多少个字符 因含有奇数个“1”而加上了校验位。统计结果存于N单元中。 程序流程图略。 参考源程序: DATA SEGMENT STRN DB What$ ;任意定义一个字串,以“$”结尾 COUNT EQU $-STRN N DB ? BUF DB COUNT DUP(?) DATA EN
显示全部
相似文档