题目内容 (请给出正确答案)
[主观题]

请编制程序,其功能是:内存中连续存放着两个无符号字节数序列Ak和Bk(k=0,1,…,9),求序列Ck,Ck=Ak÷B

请编制程序,其功能是:内存中连续存放着两个无符号字节数序列Ak和Bk (k=0,1,…,9),求序列Ck,Ck=Ak÷Bk (运算结果按序以字的形式连续存放,其中低字节为商,高字节为余数)。

例如:

序列Ak为:01H,7FH, 80H,FFH…

序列Bk为:PFH,80H,7FH,01H…

结果Ck为:0100H(00H为商、01H为余数),7F00H,0101H,00FFH…

部分程序已给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入SOURCE开始的内存单元中,运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT.DAT中。

请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGm和END之间原有的代码并自行编程来完成所要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。

[试题程序]

EXTRN LOAD:FAR,SAVE:FAR

N EQU 10

STAC SEGMENT STACK

DB 128 DUP()

STAC ENDS

DATA SEGMENT

SOURCE DB N*2 DUP()

RESULT DW N DUP(0)

NAME0 DB 'INPUT.DAT',0

NAME1 DB 'OUTPUT.DAT',0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STAC

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA DX,SOURCE ;数据区起始地址

LEA SI,NAME0 ;原始数据文件名

MOV CX,N*2 ;字节数

CALL LOAD ;从 'INPUT.DAT' 中读取数据

; ******** BEGIN ********

MOV DI,OFFSET RESULT

MOV BX,0

(1)

PRO: MOV (2)

(3) ,SOURCE[BX]

CBW

DIV (4)

MOV [DI], (5)

ADD DI,2

(6)

DEC CX

(7) PRO

; ******** END ********

LEA DX,RESULT ;结果数据区首址

LEA SI,NAME1 ;结果文件名

MOV CX,2*N ;结果字节数

CALL SAVE ;保存结果到文件

RET

START ENDP

CODE ENDS

END START

提问人:网友bjhxyp 发布时间:2022-01-06
参考答案
查看官方参考答案
如搜索结果不匹配,请 联系老师 获取答案
更多“请编制程序,其功能是:内存中连续存放着两个无符号字节数序列A…”相关的问题
第1题
请编制程序PROG1.ASM,其功能是:内存中从SOURCE开始连续存放着20个字(WORD),试统计每个字中二进制

请编制程序PROG1.ASM,其功能是:内存中从SOURCE开始连续存放着20个字(WORD),试统计每个字中二进制位为1的个数。结果以字节存放。例如:内存中有139CH,518CH,1489H,…,结果为07H,08H,05H,….

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。

填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。

对程序必须进行汇编,并与IO.OBJ连接生成PROG1.EXE执行文件,最终运行程序产生结果 (无结果或结果不正确者均不得分)。

注意:源程序非填空部分可能存在个别非法指令,考生阅读源程序或调试该程序时若发现这些非法指令,请加以修改!

EXTRN LOAD:FAR,SAVE:FAR

N EQU 20

STAC SEGMENT STACK

DB 128 DUP()

STAC ENDS

DATA SEGMENT

SOURCE DW N DUP()

RESULT DB NDUP(0)

NAMEO DB 'INPUT1.DAT',0

NAME1 DB 'OUTPUT1.DAT',0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STAC

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA DX,SOURCE ;数据区起始地址

LEA S1,NAMEO ;原始数据文件名

MOV CX,N * 2 ;字节数

CALL LOAD ;从INPUT1.DAT中读取数据

; * * * * BEGIN * * * *

LEA SI,SOURCE

LEA DI,RESULT

CLD

MOV DX,N

LOOP0: LODS _____

_______

MOV CX,16

LOOP1: ROL AX,1

J_____ NEXT

INC BX

NEXT: LOOP _____

MOV [D1],BL

______

DEC DX

JNZ LOOP0

; * * * * END * * * *

LEA DX,RESUIT ;结果数据区首址

LEA SI,NAME1 ;结果文件名

&nbs

点击查看答案
第2题
请编制程序,其功能是:内存中连续存放着两个无符号字节序列AK和BK((K=0,1,……,9),求序列CK,CK=AK-B

请编制程序,其功能是:内存中连续存放着两个无符号字节序列AK和BK((K=0,1,……,9),求序列CK,CK=AK-BK(CK以有符号字的形式按C0,C1……,C9的顺序连续存放)。

例如:

序列AK为:30H,FFH,80H,FFH…

序列BK为:00H,FFH,FFH,OAH…

结果CK为:0030H,000H,FF81H,FFF5H…

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SURCE开始的内存单元中,运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。

请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。

[试题程序]

EXTRN LOAD:FAR,SAVE:FAR

N EQU 10

STAC SEGMENT STACK

DB 128 DUP()

STAC ENDS

DATA SEGMENT

SOURCE DB N*2 DUP()

RESULT DW N DUP(0)

NAME0 DB 'INPUT1.DAT',0

NAME1 DB 'OUTPUT1.DAT',0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STAC

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA DX,SOURCE ; 数据区起始地址

LEA SI,NAME0 ; 原始数据文件名

MOV CX,N*2 ; 字节数

CALL LOAD ; 从"INPUT1.DAT"中读取数据

******** BEGIN ********

MOV DI,OFFSET RESULT ; 结果从RESULT开始存放

MOV BX,0

(1)

PRO: MOV AH,0

MOV AL,SOURCE[BX] ; 序列Ak中的一个字节

SUB AL, (2) ; Ck=Ak-Bk

(3) JUMP ; 无借位转JUMP

MOV AH, (4) ; 有借位转换成有符号字(为负)

JUMP: MOV (5) ,A

ADD DI,2

INC BX

DEC CX

JNZ PRO

; ******** END ********

LEA DX,RESULT ; 结果数据区首址<

点击查看答案
第3题
请编制程序,其功能是:内存中连续存放着五个用压缩型(组合型)BCD码表示的2位十进制数,请将它们转

请编制程序,其功能是:内存中连续存放着五个用压缩型(组合型)BCD码表示的2位十进制数,请将它们转换成十个 ASCII字符,高位的BCD码转换后放在较高的地址单元。

例如:

内存中有:21H,43H,(共五个字节)

结果为:31H('1'),32H('2'),33H('3'),34H('4'),…(共十个字节)

部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DA丁中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放, 由过程SAVE保存到文件OUTPUT1.DAT中。

请填空BEGIN和END之间已给出的源程序使其完整,空白处已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。

对程序必须进行汇编,并与IO.OBJ连接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序存在错误之处,请加以修改。

[试题程序]

EXTRN LOAD:FAR,SAVE:FAR

N EQU 5

STAC SEGMENT STACK

DB 128 DUP ()

STAC ENDS

DATA SEGMENT

SOURCE DB N DUP()

RESULT DB N*2 DUP(0)

NAME0 DB 'INPUT1.DAT',0

NAME1 DB 'OUTPUT1.DAT',0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STAC

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA DX,SOURCE ;数据区起始地址

LEA SI,NANE0 ;原始数据文件名

MOV CX,N ;字节数

CALL LOAD ;从"INPUT.DAT"中读取数据

; ********* BEGIN **********

LEA SI,SOURCE

LEA DI,RESULT

MOV CX,N

NEXT: MOV (1) ,[SI]

(2)

MOV BL,AL

AND AL, (3)

OR AL,30H

MOV [DI], (4)

(5)

MOV AL, (6)

PUSH (7)

MOV CL, (8)

SHR AL,CL

POP (9) OR AL,30H

MOV [DI],AL

(10)

LOOP NEXT

; ******** END ********

LEA DX,RESULT ; 结果数据区首址

LEA SI,NANE1 ; 结果文件名

MOV CX,N*2 ; 结果字节数

CALL SAVE ; 保存结果到文件

RET

START ENDP

CODE ENDS

END START

点击查看答案
第4题
请编制程序,其功能是:内存中连续存放着20个ASCⅡ字符,如果是小写字母a~z之间的字符(包括字母a和z)

请编制程序,其功能是:内存中连续存放着20个ASCⅡ字符,如果是小写字母a~z之间的字符(包括字母a和z),请把它们转换成相应的大写字母所对应的ASCⅡ字符;若为其他字符,不作转换。

例如:

内存中有:61H('a'),62H('b'),31H('1'),41H('A'),42H('B')…

结果为: 41H('A'),42H('B'),31H,41H,42H…

部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。

请填空BEGIN和END之间已给出的源程序使其完整,空白处已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。

对程序必须进行汇编,并与IO.OBJ连接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序存在错误之处,请加以修改。

【试题程序】

EXTRN LOAD:FAR,SAVE:FAR

N EQU 20

STAC SEGMENT STACK

DB 128 DUP ()

STAC ENDS

DATA SEGMENT

SOURCE DB N DUP()

RESULT DB N DUP(0)

NAME0 DB 'INPUT1.DAT',0

NAME1 DB 'OUTPUT1.DAT',0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STAC

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA DX,SOURCE ; 数据区起始地址

LEA SI,NAME0 ; 原始数据文件名

MOV CX,N ; 字节数

CALL LOAD ; 从"INPUT.DAT"中读取数据

; ******** BEGIN ********

LEA SI, SOURCE

LEA DI, RESULT

MOV CX, N

NEXT: MOV AL,[SI]

CMP AL,'a'

JB (1)

CMP AL, (2)

J (3) UPPER2

SUB AL, (4)

UPPER2: HOV [DI], (5)

INC (6)

INC (7)

(8) NEXT

; ******** END ********

LEA DX,RESULT ; 结果数据区首址

LEA SI,NAME1 ; 结果文件名

MOV CX,N ; 结果字节数

CALL SAVE ; 保存结果到文件

RET

START ENDP

CODE ENDS

END START

点击查看答案
第5题
请编制程序PROG1.ASM,其功能是:内存中连续存放着二个有符号字节序列Ak和Bk,求序列Ck(Ck=Ak+Bk)。

请编制程序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和END之间补充一段源程序,完成要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。

PROG1.ASM文件内容如下:

EXTRN LOAD: FAR, SAVE: FAR

N EQU 10 ;每个序列的长度

STAC SEGMENT STACK

DB 128 UP()

STAC ENDS

DATA SEGMENT

SOURCE DB N * 2DUP() ;顺序存放AO, ..., A9 ,BO,.. ,B9

RESULT DW N DUP(0) ;顺序存放CO,...,C9

NAME0 DB 'INPUT1. DAT',0

NAME1 DB 'OUTPUT1. DAT' ,0

DATA ENDS

CODE SEGMENT

ASSUME CS: CODE, DS: DATA, SS: STAC

START PROC FAR

PUSH DS

XOR AX, AX

PUSH AX

MOV AX, DATA

MOV DS, AX

LEA DX, SOURCE ;数据区起始地址

LEA SI, NAME0 ;原始数据文件名

MOV CX, N*2 ;字节数

CALL LOAD ;从INPUT1.DAT文件中读取数据

; * * * * BEGIN * * * *

MOV DI,OFFSET RESULT ;结果从RESULT开始存放

MOV BX,0

MOV CX,N

PRO: MOV AH ,0

MOV AL,_____ ;序列Bk中的一个字节

MOV DL, AL ; 暂存Bk

_____ AL, SOURCE [BX] ; Ck = Bk + Ak

JNO STAY ; 无溢出转STAY

JUMP1: MOV AH ,00 ; 有溢出

ADD DL,O

JNS JUMP ; Bk是正数(为一个正数加上

; 一个正数,结果为负数的溢出

; 情况)转JUMP(AH已为OOH)

MOV AH,_____ ; Bk是负数(为一个负数加上

&nbs

点击查看答案
第6题
请编制程序,其功能是:内存中连续存放着两个由8位有符号整数组成的序列Ai和Bi(i=0,…,9;下同),Ai在

请编制程序,其功能是:内存中连续存放着两个由8位有符号整数组成的序列Ai和Bi(i=0,…,9;下同),Ai在前,Bi在后。求序列Ci,Ci=Ai+Bi。结果Ci用字单元按C0,…,C9的顺序存放。

例如:

序列Ai为:80H(-128D),31H(49D),61(97D),7FH(127D),…

序列Bi为:80H(-128D),01(1D),F1H(-15D),7FH(127D),…

部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。

请填空BEGIN和END之间已给出的源程序使其完整,空白处已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。

对程序必须进行汇编,并与IO.OBJ连接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序存在错误之处,请加以修改。

[试题程序]

EXTRN LOAD:FAR,SAVE:FAR

N EQU 10 每个序列的长度

STAC SEGMENT STACK

DB 128 DUP ()

STAC ENDS

DATA SEGMENT

SOURCE DB N*2 DUP() ; 顺序存放A0,L,A9,B0,L,B9

RESULT DW N DUP(0) ; 顺序存放C0,L,C9

NAME0 DB 'INPUT1.DAT',0

NAME1 DB 'OUTPUT1.DAT',0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STAC

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA DX,SOURCE ;数据区起始地址

LEA SI,NAME0 ;原始数据文件名

MOV CX,N*2 ;字节数

CALL LOAD ;从"INPUT1.DAT"中读取数据

; **+***** BEGIN ********

MOV DI,OFFSET RESULT ;结果从RESULT开始存放

MOV BX,0

MOV CX,N

PRO: MOV AH,0

MOV AL, (1) ;序列Bi中的一个整数

MOV DL,AL ;暂存Bi

(2) AL,SOURCE[BX] ;Ci=Bi+Ai

JNO STAY ;无溢出转STAY

JUMP1: MOV AH,00 ;有溢出

ADD DL,0

JNS JUMP ;Bi是正数(为一个正数加上一个正数,

;结果为负数的溢出情况)转JUNP(AH

;已为00H)

MOV AH, (3) ;Bi是负数(为一个负数加上一个负数,

;结果为正数的溢出情况)将结果变为

;负数

JMP (4)&nbs

点击查看答案
第7题
试题要求如下: 请编制程序,其功能是:内存中连续放着20个ASCII字符,如果是小写字母A~Z之间的字符,

试题要求如下:

请编制程序,其功能是:内存中连续放着20个ASCII字符,如果是小写字母A~Z之间的字符,请把它们转换成相应的小写字母:若为其他字符,均转换成ASCII字符'NUL' (00H)。

例如:

内存中有:41H ('A'),42H ('B'),5EH,64H,48H……

结果为: 61H ('a'),62H ('b'),00H('NUL'),00H('NUL'),00H('NUL')……

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算的结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。在BEGIN和AND之间编程完成要求的功能。

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

试题程序:

EXTRN LOAD: FAR, SAVE: FAR

N EQU 20

STAC SEGMENT STACK

DB 128 DUP ()

STAC ENDS

DATA SEGMENT

SOURCE DB N DUP()

RESULT DB N DUP(0FH)

NAME0 DB 'INPUT1.DAT', 0

NAME1 DB 'OUTPUT1.DAT', 0

DATA ENDS

CODE SEGMENT

ASSUME CS: CODE, DS: DATA, SS: STAC

START PROC FAR

PUSH DS

XOR AX, AX

PUSH AX

MOV AX, DATA

MOV DS, AX

LEA DX, SOURCE ; 数据区起始地址

LEA SI, NAME0 ; 原始数据文件名

MOV CX, N ; 字节数

CALL LOAD ; 从'INPUT1.DAT'中读取数据

LEA SI, SOURCE

LEA DI, RESULT

; **** BEGIN ****

; **** END ****

LEA DX, RESULT ; 结果数据区首址

LEA SI, NAME1 ; 结果文件名

MOV CX, L+I ; 结果字节数

CALL SAVE ; 保存结果到文件

RET

START ENDP

CODE ENDS

END START

点击查看答案
第8题
请编制程序PROG1.ASM,其功能是:对内存中连续存放着20个补码表示的无符号整数进行从大到小的排序,
结果存放在RESULT开始的内存单元中。

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文刊:OUTPUT1.DAT中。请在BEGIN和END之间补充一段源程序,完成要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。

试题程序:

EXTRN LOAD:FAR, SAVE:FAR

N EQU 20

DSEG SEGMENT

SOURCE DW N DUP() ; 存放原始数据

RESULT DW N DUP(0) ; 存放运算结果

NAME0 DB 'INPUT1.DAT',0

NAME1 DB 'OUTPUT1.DAT',0

DSEG ENDS

SSEG SEGMENT STACK

DB 128 DUP()

SSEG ENDS

CSEG SEGMENT

ASSUME 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,NAMEO ; 原始数据文件名

MOV CX.N ; 字节数

CALL LOAD ; 从'INPUT1.DAT中读取数据'

;****BEGIN****

……

……

……

;****END****

LEA DX,RESULT ; 结果数据区首址

LEA SI,NAME1 ; 结果文件名

MOV CX,N ; 结果字节数

CALL SAVE ; 保存结果到文件

RET

START ENDP

CSEG ENDS

END START

点击查看答案
第9题
请编制程序,其功能为:内存中连续存放着20个无符号字节数,求它们的和。和值按字的形式存放,此前先
按序存放参加运算的20个字节。

例如;

内存中有:01H,02H,03H ……

结果为:01H,02H,03H …… (参加运算的字节),后跟一个字(为前面各字节的和)

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

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

部分程序如下:

;PROG1.ASM

EXTRN LOAD:FAR,SAVE:FAR

N EQU 20

DSEG SEGMENT

SOURCE DW N DUP ()

RESULT DW N DUP (0)

NAME0 DB 'INPUT1.DAT',0

NAME1 DB 'OUTPUT1.DAT',0

DSEG ENDS

SSEG SEGMENT STACK

DB 256 DUP ()

SSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG, DS:DSEG;SS;SSEG

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX, DSEG

MOV DS,AX

LEA DX,SOURCE

LEA SI,NAME0

MOV CX,N

CALL LOAD

; *** BEGIN ***

LEA SI,SOURCE

LEA DI,RESULT

MOV CX,N

MOV BX,0

NEXT: MOV AL,[SI]

____________

____________

MOV [DI],______

____________

____________

LOOP NEXT

MOV [DI],______

; *** END ***

LEA DX,RESULT

LEA SI,NAME1

MOV CX,N+2

CALL SAVE

RET

START ENDP

CSEG ENDS

END START

点击查看答案
第10题
请编制程序,其功能是:内存中连续存放着10个十六位二进制数。分别对每个数的高位字节和低位字节进
行逻辑与运算及逻辑或运算。运算结果以字的形式按序连续存放(低位字节存入逻辑与运算的结果,高位字节存入逻辑或运算的结果)。

例如:

内存中有:AA55H,55AAH,FFAAH

结果为: PP00H,FF00H,FFAAH

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放, 由过程SAVE保存到文件OUTPUT1.DAT中。

请填空BEGIN和END之间已经给出的源程序使其完整,空白处已经用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。

[试题程序]

EXTRN LOAD:FAR,SAVE:FAR

N EQU 3

STAC SEGMENT STACK

DB 128 DUP ()

STAC ENDS

DATA SEGMENT

SOURCE DW N DUP()

RESULT DW N DUP(0)

NAME0 DB 'INPUT1.DAT',0

NAME1 DB 'OUTPUT1.DAT',0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STAC

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA DX,SOURCE ;数据区起始地址

LEA SI,NANE0 ;原始数据文件名

MOV CX,N*2 ;字节数

CALL LOAD ;从'INPUT1.DAT'中读取数据

; ********* BEGIN **********

MOV DI,OFFSET RESULT

MOV CX,N

MOV BX,00

PRO: MOV AX, (1)

MOV DX,AX

AND (2) ,DH

(3) AH,AL

MOV (4) ,DL

ADD BX,2

(5)

ADD DI,2

(6)

JNZ PRO

; ******** END ********

LEA DX,RESULT ;结果数据区首址

LEA SI,NAME1 ;结果文件名

NOV CX,N*2 ;结果字节数

CALL SAVE ;保存结果到文件

RET

START ENDP

CODE ENDS

END START

点击查看答案
账号:
你好,尊敬的用户
复制账号
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
简答题
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
简答题
点击打开微信