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

编制一个程序,其实现的功能为:将内存中从SOURCE开始的区域里存放的20个字节的压缩BCD码转换为ASC

Ⅱ码,每个压缩的BCD码转换为两个ASCⅡ码,并在最高位加上奇校验位,结果存放到RESULT开始的内存区域。

例如:

内存中有:73H,45H……

则结果为:37H,B3H,34H,B5H……

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

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

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

【试题程序】

EXTRN LOAD:FAR,SAVE:FAR

N EQU 20

DSEG SEGMENT

SOURCE DB N DUP()

RESULT DB N*2 DUP(0)

NAME0 DB 'INPUT.DAT',0

NAME1 DB 'OUTPUT.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

AGAIN: MOV AL,[SI]

MOV AH,AL

(1)

AND AH,0FOH

(2)

MOV CL,4

(3)

POP CX

ADD AL,30H

(4) NEXT

OR AL,80H

NEXT: MOV [DI],AL

INC DI

ADD AH,30H

(5) NEXT1

OR AH,80H

NEXT1: MOV [DI],AH

INC DI

INC SI

LOOP AGAIN

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

LEA DX,RESULT

LEA SI,NAME1

MOV CX,N*2

CALL SAVE

RET

START ENDP

CSEG ENDS

END START

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“编制一个程序,其实现的功能为:将内存中从SOURCE开始的区…”相关的问题

第1题

编制一个程序,其实现的功能为:内存中连续的10个无符号字节数,对其执行(X×7-5)÷8操作(X为内存中的

编制一个程序,其实现的功能为:内存中连续的10个无符号字节数,对其执行(X×7-5)÷8操作(X为内存中的数据,且X不等于0),将结果存入指定的内存区中。

例如:

内存中为:4FH,83H,34H…

则结果为:26H,40H,18H…

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

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

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

[试题程序]

EXTRN LOAD:FAR,SAVE:FAR

N EQU 10

DSEG SEGMENT

SOURCE DB N DUP()

RESULT DB N DUP(0)

NAME0 DB 'INPUT.DAT',0

NAME2 DB 'OUTPUT.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 BX,N

AGAIN: MOV AL,[SI]

MOV DX,0

MOV DL,AL

AND AX, (1)

MOV CL,3

(2) AX,CL

(3)

SUB AX,5

MOV CL,3

(4) AX,CL

MOV [DI],AL

INC SI

INC DI

DEC BX

(5)

; ****+**** END ********

LEA DX,RESULT

LEA SI,NAME1

MOV CX,N

CALL SAVE

RET

START ENDP

CSEG ENDS

END START

点击查看答案

第2题

编制一个程序,其实现的功能为:计算10个带符号字节数据的绝对值之和(和为字型),并且找出绝对值最

编制一个程序,其实现的功能为:计算10个带符号字节数据的绝对值之和(和为字型),并且找出绝对值最小的数及其所在的偏移地址,将结果依次存入指定的内存区中,结果以0FH结束。

例如:

内存中有:23H, 14H,00H,08H,PEH, 87H,02H,01H,PPH,01H

结果为:BFH,00H,00H,02H,00H,0FH

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

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

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

[试题程序]

EXTRN LOAD:FAR,SAVE:FAR

N EQU 10

DSEG SEGMENT

SOURCE DB N DUP()

RESULT DB 6 DUP(0)

MIN DB ?

NAME0 DB 'INPUT.DAT',0

NAME1 DB 'OUTPUT.DAT',0

DSEG ENDS

SSEG EGMENT 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 DX,SI

MOV CX,N-1

MOV AL,[SI]

SUB AX,0

JNS NEXT

NEG AL

NEXT: MOV MIN,AL

ADD [DI],AL

(1)

AGAIN: INC SI

MOV AL,[SI]

ADD AL,0

JNS NEXT1

(2)

NEXT1: ADD [DI],AL

(3)

CMP MIN,AL

JBE NEXT2

MOV MIN,AL

(4)

NEXT2: LOOP AGAIN

ADD DI,2

点击查看答案

第3题

窗体的load事件可以被用来实现的功能为()。

A.确定窗体的位置

B.从内存中清楚一个窗体

C.在程序启动时对属性和变量初始化

D.重画窗体

点击查看答案

第4题

请编制程序,其功能为:内存中存放着10个二进制数,需对此数组进行加密。方法为将前一个字节数(两位

请编制程序,其功能为:内存中存放着10个二进制数,需对此数组进行加密。方法为将前一个字节数(两位十六进制数a1a2表示)的低位十六进制数a2与后一个字节数(两位十六进制数b1b2表示)的高位十六进制数b1进行交换:第一个字节数的高位十六进制数与最后一个字节的低位十六进制数进行交换,加密后的结果存入内存。

例如:内存中原始数据为:50H,61H,72H,83H,94H,…,E9H

结果:90H,07H,18H,29H,3AH,…,85H

部分程序已经给出,其中原始数据由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 10

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,NAME0

MOV CX,N

CALL LOAD

; *** BEGIN ***

MOV DI,0

MOV SI,0

MOV CX,N

CONT: MOV AL, SOURCE [SI]

MOV AH,AL

AND AL,0FH

AND AH,0F0H

INC SI

CMP SI,N

____________

MOV SI,0

ONE: MOV BL, SOURCE [SI]

MOV BH,BL

AND BL,0FH

AND BH,0FOH

____________

MOV CX,4

LI: SBR BH, 1

SHL AL,1

LOOP L1

______,CX

OR AH,BH

OR AL,BL

CMP DI, 0

JNZ STOPE1

MOV SOURCE [SI] ,AL

DEC SI

MOV SOURCE [SI], AH

INC SI

JMP NEXT

STORE1: CMP DI, N-1

JL STORE2

MOV RESULT [DI], AH

MOV DI, 0

MOV RESULT [DI], AL

JMP NEXT

STORE2: MOV ______, AH

MOV ______, AL

NEXT: INC DI

LOOP CONT

; *** END ***

LEA DX, RESULT

LEA SI, NAME1

MOV CX, N

CALL SAVE

RET

START ENDP

CSEG ENDS

END START

点击查看答案

第5题

编制一个程序,其实现的功能为:求出内存中连续存放的20个无符号数序列的最大值和最小值,并将结果
按要求存入。结果的存放形式为:按原序列存放20个需要处理的无符号数,后跟该序列的最小值和最大值(最小值在前,最大值在后)。

例如:

内存中有:23H,45H,61H……

结果为: 23H,45H,61H…… (20个需要处理的原来的无符号数),后面跟该序列的最小值和最大值(最小值在前,最大值在后)。

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

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

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

【试题程序】

EXTRN LOAD:FAR,SAVE:FAR

N EQU 20

SSEG SEGMENT STACK

DB 256 DUP ()

SSEG ENDS

DSEG SEGMENT

SOURCE DB N DUP ()

RESULT DB N+2 DUP (0)

NAME0 DB 'INPUT.DAT',0

NAME1 DB '0UTPUT.DAT',0

DSEG 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 DL,[SI]

MOV DH,DL

MOV [DI],DL

INC SI

INC DI

MOV CX, (1)

AGAIN: MOV AL,[SI]

CMP (2)

JBE MIN

(3)

JMP NEXT

MIN: CMP (4)

JAE NEXT

MOV DL,AL

NEXT: MOV [DI],AL

INC SI

INC DI

LOOP AGAIN

MOV [DI],DL

MOV (5)

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

LEA DX,RESULT

LEA SI,NAME1

MOV CX,N+2

CALL SAVE

RET

START ENDP

CSEG ENDS

END START

点击查看答案

第6题

请编制程序,其功能为:将一个字符串中连续相同的字符仅用一个字符代替,生成一个新的字符串。字符串
以00H结束,长度不超过20个字节。

例如:

原字符串为:4EH,4EH,4EH,42H,1AH,31H,31H,00H:

新字符串为:4EH,42H,1AH,31H,00H

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

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

部分程序如下:

; PROG1. ASM

EXTRN LOAD:FAR,SAVE:FAR

LEN EQU 20

N EQU 10

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

MOV ES, AX

LEA DX,SOURCE

LEA SI,NAME0

MOV CX,N

CALL LOAD

; *** BEGIN ***

…………

…………

…………

; *** END ***

LEA DX,RESULT

LEA SI,NAME1

MOV CX,N

CALL SAVE

RET

START ENDP

CSEG ENDS

END START

点击查看答案

第7题

请编制程序,其功能为:将一个ASCII字符串中所有大写字母全部变成小写字母,其他字母不变。字符串以0
0H结束,长度不超过20个字节。

部分程序已经给出,其中原始数据由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 ***

……

……

……

; *** END ***

LEA DX, RESULT

LEA SI,NAME1

MOV CX,N

CALL SAVE

RET

START ENDP

CSEG ENDS

END START

点击查看答案

第8题

请编制程序,其功能为:将内存中存放的连续的30个二进制数(0到100之间),按数值大小分别进行统计,0~

请编制程序,其功能为:将内存中存放的连续的30个二进制数(0到100之间),按数值大小分别进行统计,0~59为D,60~74为C,75~84为B,85~100为A,统计出A、B、C、 D的个数,并按A、B、C、D次序存放在内存中。

例如:内存中原始数据为:21H,3CH,4DH,31H,4FH,51H,56H

统计结果:1,3,1,2

部分程序已经给出,其中原始数据由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 30

DSEG SEGMENT

SOURCE DB N DUP ()

RESULT DB 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,NAME0

MOV CX,N

CALL LOAD

; *** BEGIN ***

MOV CX,N

LEA SI,SOURCE

CONT: MOV AL,[SI]

_____________

JB LB

INC RESULT

JMP OK

LB: CMP AL, 75

JB LC

INC ______

JMP OK

LC: CMP AL,60

JB LD

____________

JMP OK

LD: ____________

OK: INC SI

LOOP CONT

; *** END ***

LEA DX,RESULT

LEA SI,NAME1

MOV CX,4

CALL SAVE

RET

START ENDP

CSEG ENDS

END START

点击查看答案

第9题

试设计一个子程序,其功能为将R0指出的内部RAM中6个单字节有符号整数按从大到小的次序重新排列。
点击查看答案

第10题

请编制程序,其功能为:设由20个8位有符号数构成一个数组,试依次去掉其中负的奇数,生成一个新的数
组(顺序不变)。结果存放在RESULT开始的内存单元中。

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

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

部分程序如下:

; PROG1.ASM

EXTRN LOAD:FAR,SAVE:FAR

LEN 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

MOV ES, AX

LEA DX, SOURCE

LEA SI,NAME0

MOV CX,N

CALL LOAD

; *** BEGIN ***

…………

…………

…………

; *** END ***

LEA DX, RESULT

LEA SI,NAME1

MOV CX,N

CALL SAVE

RET

START ENDP

CSEG ENDS

END START

点击查看答案
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
温馨提示
每个试题只能免费做一次,如需多次做题,请购买搜题卡
立即购买
稍后再说
警告:系统检测到您的账号存在安全风险

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

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