微机原理作业

更新时间:2024-05-22 00:14:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

微机原理作业

第一章

题1.1A 把下列十进制数转换为二进制,十六进制和BCD数;

1.135.625 2.548.75 3.376.125 4.254.25 题1.1B 要求同上,要转换的十进制数如下;

1.67.375 2.936.5 268.875 4.218.0625

题1.2A 写下列十进制数的原码,反码和补码表示(用8位二进制);

1.+65 2.-115 3.-65 4.-115

题1.2B 要求同题1.2A数据如下;

1.+33 2.+127 3.-33 4.-127

题1.3A 用16位二进制,写出下列十进制数的原码,反码,和补码表示;

1.+62 2.-62 3.+253 4.-253 5.+615 6.-615

题1.4A 写出下列用补码表示的二进制数的真直;

1.01101110 2.01011001 3.10001101 4.11111001

题1.4B 要求同题1.4A数据如下;

1.01110001 2.00011011

3.10000101 4.11111110 ,

1

第三章

汇编语言程序设计 题3.1A

在下列程序运行后,给相应的寄存器及存储单元填入运行的结果:

MOV AL,10H

MOV byte PTR [1000],0FFH M MOV CX,1000H BL MOV BX,2000H 1000H MOV [BX],AL BH XCHG CX,BX

MOV DH,[BX] CL MOV DL,01H

XCHG CX,BX CH

MOV [BX],DL 2000H HLT DL

题 3.1B DH 要求同题 3.1A程序如下;

MOV AL,50H AL MOV BP,1000H MOV BX,2000H MOV [BP],AL MOV DH,20H MOV [BX],DH MOV DL,01H MOV DL,[BX] MOV CX,3000H HLT

题3.2, 如在自1000H单元开始有一个100个数的数椐块。要把它传送到自2000H开始的存储区中去,用以下三种方法,分别编制程序; 1;不用数据块转送指令;

2;用单个转送的数据块转送指令; 3;用数据块成组转送指令;

题3.3A 利用变址寄存器遍一个程序,把自1000H单元内开始的100个数转送到自1070H开始的存储区中去,

题3.3B 要求用3.3A,源地址为2050H,目的地址为2000H,数据块长度为50,

题3.4 编一个程序,把自 1000H单元开始的100个数转送至1050H开始的存储区中(注意数据区有重叠)。

题3.5A 在自0500H单元开始,存有100个数。要求把它传送到1000H开始的存储区中,但在传送过程中要检查数的值,遇到第一个零就停止传送。

题3.5B 条件同题3.5A,但在传送过程中检查数的值,零不传送,不是零则传送至目的区。 题3.6 把在题3.5A中指定的数据块中的正数,传送到自1000H开始的存储区。

2

题3.7 把在题3.5A中指定的数据块中的正数,传送到自1000H开始的存储区;而把其中的负数,传送到自1100H开始的存储区。且分别统计正数和负数的个数,分别存入1200H和1201H单元中。

题3.8A 自0500H单元开始,有10个无符号数,编一个程序求10个数的和(用8个位数运算指令),把和放到050A及050B单元中(和用两个字节表示),且高位在050B单元。

题3.8B 自0200H单元开始,有100个无符号数,编一个程序求这100个数的和(用8位数运算指令),把和放在0264H 和0265H单元(和用两字节表示),且高位在0265H单元。 题3.9 题同3.8,只是在累加时用16位运算指令编程序。 题3.10A 若在0500H单元中有一个数x:

1.利用加法指令把它乘2,且送回原存储单元(假定x*2后仍为一个字节); 2.x*4;

3.x*10 (假定x*10 ≤ 255)。 题3.10B

题意与要求同题3.10A,只是x*2后可能为两个字节。 题3.11

若在存储器中有两个数a和b(它们所在地址用符号表示,下同),编一个程序实现a*10+b(a*10以及“和”用两字节表示)。 题3.12

若在存储中有数a,b,c,d(它们连续存放),编一个程序实现 ((a*10+b)*10+c)*10+d (和 ≤ 65535) 题3.13A

在0100H单元和010AH单元开始,存放两个各为10个字节的BCD数(地址最低处放的是最低字节),求它们的和,且把和放在0114H开始的存储单元中。 题3.13B

在0200H单元和020AH单元开始,存放两个各为10个字节的二进制数(地址最低处放的是最低字节),求它们的和,且把和放在0214H开始的存储单元中。 题3.14

在0200H单元开始放有效A(低位在前)

NA=95 43 78 62 31 04 56 28 91 01 在020单元开始放有数B

NB=78 96 42 38 15 40 78 21 84 50 求两数之差,且把差值送入自0200H开始的存储区。 题3.15A

在0500H单元有一个数x,,把此数的前四位变0,后四位维持不变,送回同一单元。 题3.15B

条件同题3.15A,要求最高位不变,后7位都为0。 题3.16A

若在0500H单元有一个x, 把此数的前四位变“1”,后四位维持不变,送回同一单元。 题3.16B

把x的最低位变“1”,高7位不变,送至0600H单元。 题3.17A

若在0500H有一个数X,把此数的前四位变反,后四位维持不变,送回同一个单元 题3.17B

3

把X最高位去反,后7位不变,送至0600H单元。

题3.18

从0200H单元读入一个数,检查它的符号,且在0300H单元为它建立一个符号标志(正为OO,负为FF)。 题3.19A

若从0200H单元开始有100个数,编一个程序检查这些数,正数保持不变,负数都取补后送回 。 题3.19B

把题3.19A中的负数取补后送至0300H单元开始的存储区。 题3.20A

若在0200H和0201H单元中有一个双字节数,编一个程序对它们求补。 题3.20B 在BX寄存器对中有一个双字节数,对它求补。 题3.21

若在0200H—0203H单元中有一个四字节数,编一个程序对它求补。 题3.22A

若在0200H—0201H单元中有两个正数,编一个程序比较它们的大小,把大的数放在0201H单元中。 题3.22B

条件同上,把较小的数放在0201H单元中。 题3.23

条件与要求同题3.22A,只是两个数为无符号数。 题 3.24

条件与要求同题3.22A,相比较的是两个带符号数。 题3.25A

若自0500H单元开始有1000个带符号数,把它们的最小值找出来,放在1000H单元中。 题3.25B

若自1000H单元开始有1000个无符号数,把它们的最大值找出来,放在2000H单元。 题 3.26

若在0200H单元中有一个数X,用移为方法实现 1. X﹡2 2. X﹡4(X﹡≤255〉 且送回原单元。 题 3.27A

编一个程序,使寄存器对BX中的数整个左移一位。 题 3.27B

编一个程序,使寄存器对BP中的数整个右移一位(最高位维持不变)。 题 3.28A

在0200H单元中有一个数X,利用移位和相加的办法,使X*10(假定X*10≤255)后送回原单元。 题 3.28B

条件和要求同题3.28A,但X*10可大于255。 题 3.29

在0200H和0201H单元中存有一个两字节数 (高位在后),编一个程序把它们整个右移

4

一位。 题 3.30

在自BUFFER单元开始,放有一个数据快,BUFFER和BUFFER+1单元中放的是数据的长度,自BUFFER+2开始存放的是ASCII码表示的十进制数码,把它们转换为BCD码,且把两个想邻单元的数码并成一个单元(地址高的放在 高 四位)。放到自BUFFER+2开始的存储区中。 题 3.31

来自BUFFER单元开始,放有一个数据快,BUFFER和BUFFER+1单元中放的是数据的长度,BUFFER+2开始存放数据,每一单元放的是两位BCD码,把它们分别转换为ASCII,放到自BLOCK开始的存储区中(第四位BCD码 转换成的ASCII码放在地址低的单元),而BLOCK和BLOCK+1放转换成的ASCCII码的长度。 题3.32B

条件同题3.32A,把转换以后的两个相邻的16进制树并在一个存储单元中。 题3.33

若在某存储区中已输入4个以ASC11码表示的16进制数码(高位在前),把它们转换为二进制数放入BX寄存器对中。 题3.34

在自BUFFER单元开始的数据块中,前两个单元放的是数据块的长度,自BUFFER+2开始存放的是二进制的数据块。把每一个存储单元的两位16进制数,分别转换为各自的ASC11码,放到自BLOCK开始的存储区中(开始两个单元放新的数据块的长度)。 题3.35

在题3.30中,把相邻单元的两个数码看成是两位十进制数(后面的为十位数),把它们转换为相应的二进制数,放到自BUFFER+2开始的存储区中。 题3.36

在题3.34中,把数据块中的每一单元的二进制数转换为相应的BCD码(每一字节的二进制数,对应三位BCD码),在把它们转换为ASC11码放到BLOCK开始的存储区中(开始两个单元放新的数据块的长度)。 题3.37

若在AX寄存器中放有四位BCD码把它们转换为相应的二进制数,放在BX寄存器中。 题3.38A

若在BX寄存器中有一个16位无符号数,把它们转换为相应的BCD码,放到自DATA开始的存储区中(每一位BCD码占一个存储单元,高位在前)。 题3.38B

若在BX寄存器中有一个16位带符号数,把它们转换为相应的BCD码,放在自DATA开始的存储区中(符号占一个单元,每一位BCD码占一个存储单元,高位在前)。 题3.39

若自STRING单元开始存放一个字符串(以字符$结尾): 1. 编一个程序统计这个字符串的长度(不包括$字符);

2. 把字符串的长度,放在STRING单元,把整个字符串往下移两个存储单元。 题3.40

若自STRING单元开始存放一个字符串(一字符空格引导,以$结尾),编一个程序统计这个字符串的长度(忽略前导空格和结尾的$字符)。 题3.41A

在题3.40的字符串中,统计数字字符(‘0’-‘9’)的个数。

5

本文来源:https://www.bwwdw.com/article/pd27.html

Top