《微机原理及应用试卷 编程题.doc》由会员分享,可在线阅读,更多相关《微机原理及应用试卷 编程题.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一.编程题 (共43题,430分)1.1 库中题号: 10分编写完整的8086汇编程序:将字符缓冲区A的字符倒序存放到缓冲区B中。1.2 库中题号: 10分编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将这些数字加密后(用XLAT指令变换)存入内存缓冲区BUFFER。加密表为; 输入数字: 0,1,2,3,4,5,6,7,8,9 密码数字: 7,5,9,1,3,6,8,0,2,41.3 库中题号: 10分试编写程序,它轮流测试两个设备的状态寄存器,只要一个状态寄存器的第0位为1,则与其相应的设备就输入一个字符;如果其中任一状态寄存器的第3位为1,则整个输入过程结束。
2、两个状态寄存器的端口地址分别是0024和0036,与其相应的数据输入寄存器的端口则为0026和0038,输入字符分别存入首地址为BUFF1和BUFF2的存储区中。1.4 库中题号: 10分把010010之间的30个数,存入首地址为GRAD的字数组中,GRAD+i表示学号为i+1的学生成绩。另一个数组RANK是30个学生的名次表,其中RANK+I的内容是学号为i+1的学生的名次。试编写程序,根据GRAD中的学生成绩,将排列的名次填入RANK数组中(提示:一个学生的名次等于成绩高于这个学生的人数加1)。1.5 库中题号: 10分已知整数变量A和B,试编写完成下述操作的程序:(1)若两个数中有一个是
3、奇数,则将该奇数存入A中,偶数存入B中;(2)若两个数均为奇数,则两数分别加1,并存回原变量;(3)若两个数均为偶数,则两变量不变。1.6 库中题号: 10分试编写完整的程序,要求从键盘输入3个16进制数,并根据对3个数的比较显示如下信息:(1)如果3个数都不相等则显示0;(2)如果3个数中有2个数相等则显示2;(3)如果3个数都相等则显示3。1.7 库中题号: 10分编写完整的程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示“MATCH”,若不同则显示“NO MATCH”。1.8 库中题号: 10分试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母
4、显示出来。1.9 库中题号: 10分编写程序段, 比较两个5字节的字符串OLDS和NEWS, 如果OLDS字符串与NEWS不同, 则执行NEW_LESS, 否则顺序执行程序。1.10 库中题号: 10分有两个3位的ASCII数串ASC1和ASC2定义如下: ASC1 DB 578 ASC2 DB 694 ASC3 DB 0000请编写程序计算ASC3ASC1+ASC2。1.11 库中题号: 10分变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。1.12 库中题号: 10分编写程序段, 比较两个5字节的字符串OLDS和NEWS, 如果OLDS字符串与NEWS不同,
5、 则执行NEW_LESS, 否则顺序执行程序。1.13 库中题号: 10分变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DATAY DW 0237H DW 4052H按下述要求写出指令序列:(1)DATAX除以23(用DIV)。(2)DATAX双字除以字DATAY(用DIV)。1.14 库中题号: 10分变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DATAY DW 0237H DW 4052H按下述要求写出指令序列:(1)DATAX和DATAY两个字数据相乘(用MUL)。(2)DATAX和DATAY两个双字数据相
6、乘(用MUL)。1.15 库中题号: 10分变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DATAY DW 0237H DW 4052H按下述要求写出指令序列:(1)DATAX和DATAY中的两个双字数据相加, 和存放在DATAY和DATAY+2中。(2)DATAX和DATAY中的两个字数据相加, 和存放在DATAY开始的字单元中。1.16 库中题号: 10分根据下列要求编写一个汇编语言程序::(1)代码段的段名为COD_SG(2)数据段的段名为DAT_SG(3)堆栈段的段名为STK_SG(4)变量HIGH_DAT所包含的数据为95(5)将变量HIGH_
7、DAT装入寄存器AH,BH和DL(6)程序运行的入口地址为START1.17 库中题号: 10分编写程序用XLAT指令将小于16的二进制数转换成ASCII表示的16进制数。1.18 库中题号: 10分编写程序将一个8位二进转换为2位BCD数字,进入程序时,AL中为二进制数,退出程序时,如CF为0,则AL中为BCD数字,如CF为1,则表示由于输入值超出范围故结果无效。1.19 库中题号: 10分编写程序实现两个16位组合BCD码相加。进入程序时,BX中为加数,AX中为被加数,程序执行后,结果在AX中。1.20 库中题号: 10分编写程序实现两个16位组合BCD码相减,进入程序时,BX中为减数,A
8、X中为被减数,程序执行后,结果在AX中。1.21 库中题号: 10分编写程序段设计一个实现16位非组合BCD码减法的程序。1.22 库中题号: 10分编写程序实现两个16位非组合BCD码的数相加。1.23 库中题号: 10分编写程序设计一个16位带符号数和32位带符号数相乘程序。(DX、AX)*CX-DX、CX、AX,为有符号数1.24 库中题号: 10分编写程序实现在TABLE 为起始地址的100个字符长度的表中检索“$字符。1.25 库中题号: 10分编写程序实现对两个存储区中的字进行比较。如找到一对不同的字,则退出,此时 ,ZF为0,DI 指向此字;如两个存储区中所有的字都相同,则退出程
9、序时,CX中值为0,ZF为1。1.26 库中题号: 10分编程序将一个存储块的内容复制到另一个存储块,进入存储段时,SI中为源区起始地址的偏移量,DI中为目的区起始地址的偏移量,CX中为复制的字节数。1.27 库中题号: 10分用循环控制指令设计程序段,从60H 个元素中寻找一个最大值,结果放在AL中。1.28 库中题号: 10分用串操作指令设计实现以下功能的程序段:首先将100H个数从2170H处搬到1000H处,然后,从中检索相等于AL中字符的单元,并将此单元值换成空格符。1.29 库中题号: 10分试编写一个程序段,实现将BX中的数除以10,结果仍放在BX中。1.30 库中题号: 10分
10、在DS段中有一个从TABLE开始的由160个字符组成的链表,设计一个程序,实现对此表进行搜索,找到第一个非0元素后,将此单元和下一单元清0。1.31 库中题号: 10分编写统计DATAWORD字数据中1的个数的程序段,结果存放在COUNT中。1.32 库中题号: 10分在DS段中有一个从TABLE开始的由1000个字符组成的链表,设计一个程序段,实现对此表的搜索,找到第一个非0元素后,将此单元和下一个单元清0。1.33 库中题号: 10分用循环控制指令设计程序段,从100个元素中寻找一个最大值,结果放在AL中(假设数据存放在起始地址为DATA1开始的单元中)。1.34 库中题号: 10分用串操
11、作指令设计以下功能的程序段:首先将500H个数从2170H处搬到1000H处,然后,从中检索相等于AL中字符的单元,并将此单元值换成空格符(BUFF1处的地址为1000H,BUFF2处的地址为2170H) 。1.35 库中题号: 10分试编写一个程序段,实现将BX中的数除以10,结果仍放在BX中。1.36 库中题号: 10分试定义一个字符串搜索宏指令,要求文本首地址和字符串首地址用形式参数。1.37 库中题号: 10分试定义将一位十六进制数转换为ASCII码的宏指令。1.38 库中题号: 10分从键盘输入一个大写英文字母,将其转换为小写字母并显示出来,要求输入其它字符时,能够有出错提示信息。1.39 库中题号: 10分已知在内存中从BLOCK单元起存放有20个带符号字节数据,统计其中负数的个数并放入COUNT单元。1.40 库中题号: 10分从键盘输入一系列字符,以回车符结束,编程统计其中非数字字符的个数。1.41 库中题号: 10分编写程序,计算下面函数的值。1.42 库中题号: 10分已知用寄存器BX作地址指针,自BUF所指的内存单元开始连续存放着3个无符号数字数据,编程序求它们的和,并将结果存放在这3个数之后。1.43 库中题号: 10分编写完整的8086汇编程序:查表求X(0-9)的立方并将结果存放到变量XXX中去。