微机原理题库加编号 下载本文

06 0011 0402 0402 03 10 汇编语言及其程序设计

编写程序实现两个16位组合BCD码相减,进入程序时,BX中为减数,AX中为被减数,程序执行后,结果在AX中。

06 0012 0402 0402 03 10 汇编语言及其程序设计

编写程序实现两个16位组合BCD码相加。进入程序时,BX中为加数,AX中为被加数,程序执行后,结果在AX中。

06 0013 0402 0402 03 10 汇编语言及其程序设计

编写程序将一个8位二进转换为2位BCD数字,进入程序时,AL中为二进制数,退出程序时,如CF为0,则AL中为BCD数字,如CF为1,则表示由于输入值超出范围故结果无效。

06 0014 0402 0402 03 10 汇编语言及其程序设计 编写程序用XLAT指令将小于16的二进制数转换成ASCII表示的16进制数。

06 0015 0402 0402 02 10 汇编语言及其程序设计 根据下列要求编写一个汇编语言程序:: (1)代码段的段名为COD_SG

(2)数据段的段名为DAT_SG (3)堆栈段的段名为STK_SG (4)变量HIGH_DAT所包含的数据为95

(5)将变量HIGH_DAT装入寄存器AH,BH和DL (6)程序运行的入口地址为START

06 0016 0302 0302 03 10 8086/8088指令系统 变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DATAY DW 0237H

DW 4052H 按下述要求写出指令序列: (1)DATAX和DATAY中的两个双字数据相加, 和存放在DATAY和DATAY+2中。

37

(2)DATAX和DATAY中的两个字数据相加, 和存放在DATAY开始的字单元中。

06 0017 0302 0302 01 10 8086/8088指令系统 变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DATAY DW 0237H DW 4052H

按下述要求写出指令序列:

(1)DATAX和DATAY两个字数据相乘(用MUL)。 (2)DATAX和DATAY两个双字数据相乘(用MUL)。

06 0018 0302 0302 02 10 8086/8088指令系统 变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H

DATAY DW 0237H DW 4052H

按下述要求写出指令序列: (1)DATAX除以23(用DIV)。

(2)DATAX双字除以字DATAY(用DIV)。

06 0019 0302 0302 03 10 8086/8088指令系统

编写程序段, 比较两个5字节的字符串OLDS和NEWS, 如果OLDS字符串与NEWS不同, 则执行NEW_LESS, 否则顺序执行程序。

06 0020 0302 0302 03 10 8086/8088指令系统

变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。

06 0021 0302 0302 03 10 8086/8088指令系统 有两个3位的ASCII数串ASC1和ASC2定义如下: ASC1 DB ?578?

38

ASC2 DB ?694?

ASC3 DB ?0000?

请编写程序计算ASC3←ASC1+ASC2。

06 0022 0302 0302 03 10 8086/8088指令系统

编写程序段, 比较两个5字节的字符串OLDS和NEWS, 如果OLDS字符串与NEWS不同, 则执行NEW_LESS, 否则顺序执行程序。

06 0023 0402 0402 03 10 汇编语言及其程序设计

试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

06 0024 0402 0402 01 10 汇编语言及其程序设计

编写完整的程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示“MATCH”,若不同则显示“NO MATCH”。

06 0025 0402 0402 01 10 汇编语言及其程序设计 试编写完整的程序,要求从键盘输入3个16进制数,并根据对3个数的比较显示如下信息: (1)如果3个数都不相等则显示0;

(2)如果3个数中有2个数相等则显示2; (3)如果3个数都相等则显示3。

06 0026 0402 0402 02 10 汇编语言及其程序设计

已知整数变量A和B,试编写完成下述操作的程序:

(1)若两个数中有一个是奇数,则将该奇数存入A中,偶数存入B中; (2)若两个数均为奇数,则两数分别加1,并存回原变量; (3)若两个数均为偶数,则两变量不变。

39

06 0027 0402 0402 01 10 汇编语言及其程序设计

把0~10010之间的30个数,存入首地址为GRAD的字数组中,GRAD+i表示学号为i+1的学生成绩。另一个数组RANK是30个学生的名次表,其中RANK+I的内容是学号为i+1的学生的名次。试编写程序,根据GRAD中的学生成绩,将排列的名次填入RANK数组中(提示:一个学生的名次等于成绩高于这个学生的人数加1)。

06 0028 0402 0402 01 10 汇编语言及其程序设计

试编写程序,它轮流测试两个设备的状态寄存器,只要一个状态寄存器的第0位为1,则与其相应的设备就输入一个字符;如果其中任一状态寄存器的第3位为1,则整个输入过程结束。两个状态寄存器的端口地址分别是0024和0036,与其相应的数据输入寄存器的端口则为0026和0038,输入字符分别存入首地址为BUFF1和BUFF2的存储区中。

06 0029 0402 0402 03 10 汇编语言及其程序设计

编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将这些数字加密后(用XLAT指令变换)存入内存缓冲区BUFFER。加密表为; 输入数字: 0,1,2,3,4,5,6,7,8,9 密码数字: 7,5,9,1,3,6,8,0,2,4

06 0030 0402 0402 03 10 汇编语言及其程序设计

编写完整的8086汇编程序:将字符缓冲区A的字符'1234567890'倒序存放到缓冲区B中。

06 0031 0402 0402 03 10 汇编语言及其程序设计

编写完整的8086汇编程序:查表求X(0-9)的立方并将结果存放到变量XXX中去。

06 0032 0402 0402 04 10 汇编语言及其程序设计

已知用寄存器BX作地址指针,自BUF所指的内存单元开始连续存放着3个无符号数字数据,编程序求它们的和,并将结果存放在这3个数之后。

06 0033 0402 0402 03 10 汇编语言及其程序设计 编写程序,计算下面函数的值。

40