简答题

在8086系统下,编写完整程序,将字节数组ARRAY中的所有数据往高地址的方向移动一位,即原来存放在ARRAY中的字节移动到ARRAY+1中,原来存放在ARRAY+1中的字节移动到ARRAY+2中,……,依此类推。假设ARRAY的长度为100个字节。

正确答案

可利用MOVSB指令实现移位,但应该注意,必须从串尾开始移动,因为假如直接从串头开始,将串头移到第二个数,那么第二个数将被覆盖。为使程序能从串尾开始移动,可令方向标志位DF=1。
参考程序:

答案解析

相似试题
  • 在8086系统下,编写完整程序,找出字节数组ARRAY中的最大值和最小值。假设ARRAY的长度为100个字节,每个字节为一个无符号数,程序执行后最大值将存放到字节变量MAX中,最小值则存放到字节变量MIN中。

    简答题查看答案

  • 在8086系统下,编写在长字符串L_STR中查找短字符串S_STR的完整程序,如果找到匹配的字符串,则将字节变量RES置0FFH,否则置0。例如,在字符串“ABABCD”中可找到字符串“ABC”,则RES=0FFH。

    简答题查看答案

  • 在8086系统下,编写完整程序,实现从键盘上输入8位二进制数,从显示器上显示相应的16进制数,例如从键盘上输入“00010010”,应在显示器上显示“12H”。

    简答题查看答案

  • 在8086系统下,编写完整程序,实现两个32位带符号数相乘。假设被乘数存放在以字变量MUL1开始的连续4个字节中,乘数存放在以字变量MUL2开始的连续4个字节中中,相乘结果存放在以字变量RES开始的连续8个字节中。

    简答题查看答案

  • 在8086系统下,编写实现如下功能的程序段: (1)从地址为80H的端口中读入一个字节; (2)如果该字节最高位为“1”,则将字节0FFH送到地址为81H的端口中,并退出程序; (3)如果该字节最高位为“0”,则转向第(1)步,继续循环扫描。

    简答题查看答案

  • 编写程序段,将存放在TABLE下的2K字节的数据块搬到NEXT下。

    简答题查看答案

  • X和Y都是字节型数据,编写将两数相加的结果显示出来的程序段。

    简答题查看答案

  • 将内存数据块XVAR中100个带符号字节数,转换成绝对值并存放在原单元中,请编写程序。

    简答题查看答案

  • 编写一短程序段:用存储单元NUMBI中的无符号字节数去除存储单元NUMB中的无符号字节数,将所得的商存入单元ANSQ,而余数存入单元ANSR中。

    简答题查看答案