[试题]

请编制程序,其功能为:从SOURCE开始的内存区域存放着N个字节的有符号数。现找出最大的数,结果存放到RESULT 指示的,其后存放原N个数逻辑取反后的值。

例如:

数据为:09H,7EH,89H,F6H,17H……67H(N个数据)

结果为:7EH (最大数),F6H,81H,76H,0CH,E8H……98H(原N个数的逻辑反)

部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT 中读入从SOURCE开始的内存单元,运算结果要求从RESIULT开始存放,由SAVE 过程保存到OUTPUT1.DAT 文件中。请在BEGIN和END 之间补充使其完整,完成要求的功能。或删除BEGIN和END 之间原有的代码井自行编程来完成要求的功能。

对程序必须进行汇编,并与IO. OBJ 链接产生PROG1. EXE 执行文件,最终产生运行结果。

部分程序如下;

;PROG1. ASM

E.XTRN LOAD: FAR,SAVE:FAR

N EQU 30

D.SEG SEGMENT

SOURCE DW N DUP (?)

RESULT DW N DUP (0)

NAME0 DB 'INPUT1.DAT,0

NAME1 DB 'OUTPUT1.DAT',0

D.SEG ENDS

SSEG SEGMENT STACK

D.B 128 DHP (?)

SSEG ENDS

C.SEG SEGMENT

A.SSUME CS:CSEG,DS:DSEG;SS:SSEG

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX, DSEG

MOV DS,AX

MOV ES, AX

LEA DX,SOURCE

LEA SI,NAME0

MOV CX,N

C.ALL LOAD

; *** BEGIN ***

______ SI,SOURCE

MOV BX,OFFSET SOURCE

LEA DI,RESULT

L1: MOV CX,N

MOV DX,CX

D.EC DX

MOV AL,______

L2: INC BX

______ AL,[BX]

______________

MOV AL,[BX]

L3: DEC DX

JNZ______

MOV [DI],AL

INC DI

C.LD

MAX: LODSB

NOT AL

______________

LOOP MAX

; *** END ***

LEA DX,RESULT

LEA SI,NAME1

MOV CX,N

C.ALL SAVE

RET

START ENDP

C.SEG ENDS

E.ND START

参考答案与解析:

相关试题

请编制程序PROG1.ASM,其功能是:以SOURCE开始的内存区域存放着多个字

[试题]请编制程序PROG1.ASM,其功能是:以SOURCE开始的内存区域存放着多个字节的数据,其中有压缩BCD码和其他数据。现按下列编码规则进行编码:在每个压缩BCD码前面加两个字节前缀代码BEH和CCH,并在其后加两个字节后缀代码DDH和EDH;如果不是压缩BCD码,则该数据前后均加两个代码0DH和0EH。编码后的数据存放到RESULT指示的内存区域。例如:原信息为:12H,D9H,86H,54H,……结果为:BEH,CCH,12H,DDH,EDH,0DH,0EH,D9H,0DH,0EH,BEH,C

  • 查看答案
  • 请编制程序,其功能为:内存中连续存放着20个无符号字节数,求它们的和。和值按字的

    [试题]请编制程序,其功能为:内存中连续存放着20个无符号字节数,求它们的和。和值按字的形式存放,此前先按序存放参加运算的20个字节。例如;内存中有:01H,02H,03H ……结果为:01H,02H,03H …… (参加运算的字节),后跟一个字(为前面各字节的和)部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT中读入从SOURCE开始的内存单元,运算结果要求从RESULT开始存放,由SAVE过程保存到OUTPUT1.DAT文件中。请在BEGIN和END之间补充使其完整,完成要求的功

  • 查看答案
  • 请编制程序PROG1.ASM,其功能是:内存中连续存放着二个有符号字节序列Ak和

    [试题]请编制程序PROG1.ASM,其功能是:内存中连续存放着二个有符号字节序列Ak和Bk,求序列Ck(Ck=Ak+Bk)。例如:源数Ak:0lH,02H,02H,02H,04H,05H…源数Bk:01H,02H,02H,02H,04H,05H…结果Ck:02H,04H,04H,04H,08H,0AH…部分程序已经给出,其中原始数据由过程LOAD从文件INPUTl.DAT中读入SOURCE开始的内存元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。请在BEGIN

  • 查看答案
  • 编制一个程序,其实现的功能为:将内存中从SOURCE开始的区域里存放的20个字节

    [试题]编制一个程序,其实现的功能为:将内存中从SOURCE开始的区域里存放的20个字节的压缩BCD码转换为ASCⅡ码,每个压缩的BCD码转换为两个ASCⅡ码,并在最高位加上奇校验位,结果存放到RESULT开始的内存区域。例如:内存中有:73H,45H……则结果为:37H,B3H,34H,B5H……部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。请填空BE

  • 查看答案
  • 请编制程序,其功能是:内存中连续存放着10个二进制字节数,需对此组数进行加密,其

    [试题]请编制程序,其功能是:内存中连续存放着10个二进制字节数,需对此组数进行加密,其方法为:将前一个字节数(两位十六进制数a1a2表示)的低位十六进制数a2与后一个字节数(两位十六进制数b1b2表示)的高位十六进制数b1进行交换;第一个字节数的高位十六进制数与最后一个字节数的低十六进制数进行交换,加密后的结果存入内存。例如:内存中有:50H,61H,72H,83H,94H,A5H,B6H,C7H,D8H,E9H结果为:96H,07H,18H,29H,3AH,4BH,5CH,6DH,7EH,85H部分程

  • 查看答案
  • 请编制程序,其功能是:内存中连续存放着10个无符号8位格雷码表示的数,现将此10

    [试题]请编制程序,其功能是:内存中连续存放着10个无符号8位格雷码表示的数,现将此10个数转换成10个8位二进制数,结果存入内存,其转换方法为二进制数的最高位D[7]与格雷码的最高位G[7]相同,二进制数的其余七位D[k](k=6,…,0)分别为格雷码的位G[k](k=6,…,0)与二进制数的位D[k+1](k=6,…,0)异或的结果。例如:内存中有:00H,03H,2BH,67H,0CH,15H,54H,02H,D8H,C7H结果为:00H,02H,32H,45H,081-I,19H,67H,03H,

  • 查看答案
  • 请编制程序,其功能是:内存中连续存放着五个用压缩型(组合型)BCD码表示的2位十

    [试题]请编制程序,其功能是:内存中连续存放着五个用压缩型(组合型)BCD码表示的2位十进制数,请将它们转换成十个 ASCII字符,高位的BCD码转换后放在较高的地址单元。例如:内存中有:21H,43H,(共五个字节)结果为:31H('1'),32H('2'),33H('3'),34H('4'),…(共十个字节)部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DA丁中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放, 由过程SAVE保存到文件OUTPUT

  • 查看答案
  • 请编制程序,其功能是:从第0行第0列开始,依次取出N阶矩阵中对角线上的元素(字节

    [试题]请编制程序,其功能是:从第0行第0列开始,依次取出N阶矩阵中对角线上的元素(字节型)并计算累加和(字型),然后将其存放在指定的内存区中。例如:内存中有:01H,01H,01H,02H,02H,02H,03ff,03H,03H结果为: 01H,02H,03H,06H,00H部分程序已给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入SOURCE开始的内存单元中,转换结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT.DAT中。请填空BEGIN和END之间已经给出的一段源

  • 查看答案
  • 请编制程序PROG1.ASM,其功能是:内存中连续存放着10个十六位二进制数,每

    [试题]请编制程序PROG1.ASM,其功能是:内存中连续存放着10个十六位二进制数,每个数的序号依次定义为0,1,…9。统计每个数中位为0的个数N0,N1,…,N9(均用一个字节表示),然后按序将N0至N9存入内存中,最后再用一个字节表示这10个数中为0的位的总数n (n=N0+N1+…+N9)。例如:内存中有 0000H,000FH,FFFFH,…结果为 10H,0CH,00H,…,最后为n部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果

  • 查看答案
  • 请编制程序,其功能是:内存中连续存放着10个十六位二进制数。分别对每个数的高位字

    [试题]请编制程序,其功能是:内存中连续存放着10个十六位二进制数。分别对每个数的高位字节和低位字节进行逻辑与运算及逻辑或运算。运算结果以字的形式按序连续存放(低位字节存入逻辑与运算的结果,高位字节存入逻辑或运算的结果)。例如:内存中有:AA55H,55AAH,FFAAH结果为: PP00H,FF00H,FFAAH部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放, 由过程SAVE保存到文件OUTPUT1.DAT中。

  • 查看答案
  • 请编制程序,其功能为:从SOURCE开始的内存区域存放着N个字节的有符号数。现找