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