2017计算机硬件新技术,2017年《计算机硬件技术基础》实验答案程序.doc

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

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

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

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

DATASEGMENT

NUM1 DD 2A8B7654H NUM2 DW 5ABCH NUM3 DW ?

NUM4 DW ? DATAENDS

CODESEGMENT

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 CODEENDS

END START

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

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

DATASEGMENT ARY DB 2AH,?,?

DATAENDS

CODESEGMENT

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

CODEENDS

END START

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

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

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

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

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

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

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

DATAENDS

CODESEGMENT

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

CODEENDS

END START

(2)编写一个能实现下列表达式的程序:

?

N = ?

A + B

A ≤ B

设 A,B,C 为小于 128 的正整数。

? A ? B + C

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

DATASEGMENT

A > B

A DB 22H;定义 A、B、C、N B DB 10H

C DB 01H N DB ?

DATAENDS

CODESEGMENT

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

CODEENDS

END START

实验三 循环程序设计实验

(1)将字符串STRN(以“$”结尾)中的每一个字符均加上偶校验位,并统计有多少个字符 因含有奇数个“1”而加上了校验位。统计结果存于N单元中。

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

DATASEGMENT

STRN DB 'What$';任意定义一个字串,以“$”结尾

COUNT EQU $-STRN N DB ?

BUF DB COUNT DUP(?) DATA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值