《计算机硬件技术基础》实验答案程序.. 下载本文

内容发布更新时间 : 2024/12/24 11:38:22星期一 下面是文章的全部内容请认真阅读。

实验一:简单程序设计实验

(1)编写一个 32 位无符号数除法的程序,要求将存放在 NUM1 中的 32 位无符号数与存放 在 NUM2 中的 16 位无符号数相除,结果存放在 NUM3 和 NUM4 中。

程序流程图略。 参考源程序:

DATA

SEGMENT

NUM1 DD 2A8B7654H NUM2 DW 5ABCH NUM3 DW ? NUM4 DW ?

DATA

ENDS SEGMENT

ASSUME DS:DATA, CS:CODE

;数据段寄存器初始化

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 INT 21H

CODE

;正常返回DOS系统

ENDS END START

(2)编写一个拆字程序。要求将存放在 ARY 单元的 2 位十六进制数 X1X2 拆为 X1 和 X2 两 部分,并以 0X1 和 0X2 的形式分别存入 ARY+1 和 ARY+2 单元中。 程序流程图略。 参考源程序:

DATA SEGMENT

ARY DB 2AH,?,?

DATA CODE

ENDS SEGMENT

ASSUME DS:DATA, CS:CODE

START: MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET ARY MOV AL,[SI]

;取ARY的偏移地址 ;取16进制数至AL

第 1 页 共 31 页

MOV BL,AL AND AL,0F0H SHR AL,4 MOV [SI+1],AL MOV AL,BL AND AL,0FH MOV [SI+2],AL ;取16进制数的低四位,即X2 ;存0X2 ;存0X1

;取16进制数的高四位,即X1

MOV AH,4CH INT 21H

CODE

ENDS END START

第 2 页 共 31 页

实验二:分支程序设计实验

(1)编写一个字符比较程序,比较 3 个无符号字节数 A,B,C 的大小,并根据比较结果 对变量 K 赋值:

如果 3 个数不相等,则 K=0;

如果 3 个数中有两个相等,则 K=1; 如果 3 个数都相等,则 K=2。

程序流程图略。 参考源程序:

DATA

SEGMENT A DB 20H B DB 20H C DB 20H K DB ?

;定义待比较数A、B、C,比较结果K

DATA CODE

ENDS SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX MOV AL,A CMP AL,B JNE COMP2

;对A、B进行比较,不相等则转到COMP2 ;相等则比较A、C

CMP AL,C JNE K1 JMP K2

;A、C不相等则K=1 ;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: K1: K2:

MOV K,0 JMP EXIT MOV K,1 JMP EXIT MOV K,2 MOV AH,4CH

第 3 页 共 31 页

EXIT: