编制一个程序,其实现的功能为:将内存中从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
时间:2024-04-21 13:39:32
-
Certkiller.com为本地银行开发应用程序。您被指定来创建此应用程序的,并需要存储每个交易记录,这被确定使用复杂交易的标识符,在内存中。银行会通知您交易纪录的总金额将达到每日 200。为了实现这一目标,您决定利用现有.NET 2.0 类库中的一个集合类。您需要确保您选择的集合类是最有效的一个存储事务记录。你应该做什么?()
A . 选择 ListDictionary 集合类
B . 选择哈希表集合类
C . 选择队列的集合类
D . 选择 StringCollection 集合类
-
若要将窗体从内存中卸载出去,其实现的方法是()
A . Show
B . Hide
C . Load
D . UnLoad
-
()是为实现一定功能,用计算机程序设计语言所编制的语句的有序集合。()是描述程序设计的过程及程序的使用方法的有关资料。
-
Authorware中,()用于设置交互作用的结构,以达到实现人机交互的目的。()用于计算函数、变量和表达式的值以及编写Authorware的命令程序,以辅助程序的运行。()是一个特殊的逻辑功能图标,其作用是将一部分程序图标组合起来,实现模块化子程序的设计。
-
PC可编程控制器是用程序实现继电器控制功能的。其RAM的()就代表一个继电器;写入()代表线圈断电(),称为OFF状态。
-
您正在开发一个协助用户进行电子调查的应用程序。调查由25个对错判断题组成。您需要执行下列任务:将每个答案预置为是()。最大程度地减少每次调查使用的内存量。您应该选择哪个存储选项?
A . BitVector32 answers = new BitVector32(1);
B . BitVector32 answers = new BitVector32(-1);
C . BitArray answers = new BitArray (1);
D . BitArray answers = new BitArray(-1)
-
为应用程序开发人员上班 Certkiller。 com。 Certkiller.com 作为其应用程序使用 Visual Studio.NET 2005开发平台。 您正在开发一个 Windows 窗体应用程序。你被要求要创建一个新的类引发大量的事件和保持尽可能低的内存使用的类。 必须完成此任务,使用代码的最小数量可能。 你应该做什么?()
A . 应使用EventHandlerList类的一个实例存储为每个事件的类中定义的委托
B . 应为每个使用EventInstance类的一个实例在类中的事件
C . EventBuilder类应该用于定义的事件类
D . 每个应创建的每个事件委托的一个成员变量在类中的事件委托实例
-
现代计算机通常是将处理程序存放在连续的内存单元中,CPU在执行这个处理程序时,使用一个寄存器来指示程序的执行顺序,这个寄存器为()。
A . 指令寄存器
B . 指令译码器
C . 指令缓冲寄存器
D . 指令指针寄存器
-
同一个加工零件往往需要使用不同的刀具,每把刀具转到切削方位时,其刀尖所处的位置应相同,而系统要求切削前应处于同一点。刀具补偿功能是程序容易编制。
A . 正确
B . 错误
-
您在一台计算机上安装一个名为 App1.exe 的应用程序。安装后,计算机变得没有反应。您重新启动计算机,并尝试卸载 App1.exe。卸载 App1.exe 失败。您需要将计算机还原到其以前的功能状态。您必须用最少的管理工作量来实现该目标。您应该怎么做?()
A . 从“恢复”中,还原一个系统还原点
B . 从 App1.exe 的“以前的版本”选项卡中,单击“还原”按钮
C . 启动计算机,按 F8,然后使用“最近一次的正确配置”
D . 创建一个系统修复光盘,然后从该系统修复光盘启动计算机
-
压力继电器是将压力信号转换为()的转换元件,其作用是根据系统的压力变化自动接通和断开有关电路,以实现系统的程序控制和安全保护功能。
A . 压力信号
B . 电信号
C . 油液压力
-
操作系统负责将程序调入内存,并为程序的运行分配资源
-
请编写程序实现以下功能。将整形数组a [2][3]={{1,2,3},{4,5,6}}中的 行和列的元素互换后存到另一个二维数组 b 中。
-
请编写程序实现以下功能:用户输入两个数据,如果两个数据都是整数(即都由数字组成),则输出其减法运算结果;如果两个数据都不是整数,则将这两个数据作为两个字符串、输出这两个字符串连接的结果;如果一个数据不是整数、另一个数据是整数,则将不是整数的数据作为字符串、输出字符串和整数重复运算的结果。要求判断一个输入数据是否是整数的功能用函数实现。
-
同一个加工零件往往需要使用不同的刀具,每把刀具转至切削方位时,其刀尖所处的位置应相同,而系统要求切削前应处于同一点。刀具补偿功能使程序容易编制()
A.正确
B.错误
C.0
D.0
-
通过利用上级程序定义的内存变量可以在下级程序被修改,并返回其修改值从而实现数据传递。()
是
否
-
编制一个程序,其功能是:计算内存中连续存放的20个字节无符号数据的相邻两个数据之间的和,并找出和的最大值,和的最大值存放在结果的最后一个字单元,和为字数据。
例如:
内存中有:20H,04H,58H,34H,35H,4DH……,
则结果为:0024H,008CH,0082H……
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要—条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
【试题程序】
TRN OAD:FAR,SAVE:FAR
N EQU 10
SSEG SEGMENT TACK
B 256 DUP ()
SSEG NDS
DSEG EGMENT
SOURCE DB N*2 DUP ()
RESULT DW N+1 DUP (0)
NAME0 DB 'INPUT.DAT',0
NAME1 DB 'OUTPUT.DAT',0
DSEG DS
CSEG EGMENT
SSUME CS:CSEG,DS:DSEG,SS:SSEG
START PROC FAR
USH S
OR AX,AX
USH X
OV AX,DSEG
OV DS,AX
EA DX,SOURCE
EA SI,NAME0
OV CX,N*2
ALL GAD
; ******** BEGIN ********
EA SI, SOURCE
EA DI,RESULT
OV CX,N
AGAIN0: (1)
OV AL,[SI]
DD AL,[SI+1]
DC AH,0
OV [DI],AX
DD SI, (2)
(3)
OOP GAIN0
OV BX,N-1
OV SI,OFFSET RESULT
OV AX,[SI]
AGAIN1: ADD SI, 2
MP AX,[SI]
(4)
OV AX,[SI]
NEXT: DEC BX
NZ AGAIN1
(5)
; ******** END ********
EA DX,RESULT
EA SI,NAME1
OV CX,N+1
ALL AVE
ET
START ENDP
CSEG ENDS
END START
-
请编制程序,其功能是:内存中连续存放着16个10位二进制数DB9DB8…DB0,每个二进制数据均用两个字节表示,其存放格式均为:
<img src='https://img2.soutiyun.com/shangxueba/ask/10857001-10860000/10858746/ct_cshpcjm_chpcjprodesign_00005(200912).jpg' />
转换结果按原序存放在内存中。
例如:
内存中有:C048H,4091H,0080H,…
结果为: 23H,01H,45H,02H,00H,02H…
部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
[试题程序]
EXTRN LOAD:FAR,SAVE:FAR
N EQU 16
STAC SEGMENT STACK
DB 128 DUP()
STAC ENDS
DATA SEGMENT
SOURCE DW 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,NAME0 ; 原始数据文件名
MOV CX,N*2 ; 字节数
CALL LOAD ; 从"INPUT1.DAT"中读取数据
; ******** BEGIN ********
MOV DI,OFFSET RESULT
MOV BX,0
MOV CH,N
PRO: MOV AH,BYTE PTR SOURCE[BX]
MOV AL, (1)
MOV DL,AH ; 10 位无符号二进制数高八位
MOV DH,AL ; 10 位无符号二进制数低二位
MOV CL,2
SHL AX, (2)
SHL DX, (3)
MOV AL,DH
MOV [DI], (4)
MOV [DI+I], (5)
ADD DI,2
A
-
请编制程序,其功能是:内存中连续存放的20个8位无符号数是一个自动抄表仪抄录的 20个用户某月天然气的使用量(立方米),天然气费用的计算公式如下(X表示天然气使用量; Y表示需交纳的天然气费用,单位为分):
a) Y=X*70 X≤10
b) Y=10*70+(X-10)*120 X>10
例如:
天然气使用量(X)为04H,0FH,18H…
天然气费用(Y)为0118H,0514H,094CH…
试计算出这20个用户应缴纳的天然气费,结果用字(WORD)表示。
部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件 OUTPUT1.DAT中。
填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。
试题程序:
EXTRN LOAD:FAR, SAVE:FAR
N EQU 20
RATE1 EQU 70
RATE2 EQU 120
DELTA EQU 10
STAC SEGMENT STACK
DB 128 DUP()
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP()
RESULT DW N DUP(0)
NAME0 DB 'INPUT 1.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中读取数据
;****BEGIN****
LEA SI,SOURCE
LEA DI,RESULT
CLD
MOV CX,N
MOV BL,RATE 1
MOV BH,RATE2
AGAIN: (1)
CMP AL,DELTA
J (2) GREAT
MUL BL
JMP NEXT
GREAT: (3)
MUL BH
(4)
NEXT: (5)
(6)
INC SI
LOOP AGAIN
;****END****
LEA DX,RESULT&nb
-
下面一段程序要实现的功能是:在内存中从地址source开始有一个长度为100的字符串,测试该字符串中是否存在数字,如有则将DL的第五位置1,否则将该位置0。
BEGIN: MOV CX,100
MOV SI,0
REPEAT: MOV SOURCE[SI]
CMP AL,30H
JB GOON
GMP AL,【 】
JA GOON
OR DL,20H
JMP EXIT
GOON: INC SI
LOOP REPFATI
AND DL,00FH
EXIT:
-
微信小程序的出现,迎合了用户勤快和追求方便的共性,不需要注册、下载、用完即走、不占内存,并且通过一个简单的二维码使线上和线下实现无缝连接。
-
7、下面是一个将十进制正整数转换为2进制数的函数定义: void tobinary(int x) { while (x>0) { printf("%1d",x%2); } } 要实现函数的功能,则在空白处应该填写的程序语句是()。
A.x=x/2;
B.x=x/10;
C.x=x%2;
D.x=x%10;
-
30、将BUF内存单元的偏移地址传送到BX中,可以用MOV BX, OFFSET BUF实现,还可以用功能相同的指令 实现。(注:(1)不能有多余的空格,例:操作码和操作数之间空格只有一位;操作数和操作数之间不能有空格,用半角逗号隔开。(2)字符全部大写,并且为半角字符。)
-
下面程序的功能是用字符指针变量作函数参数编程实现字符串连接函数strcat()的功能,将字符串srcStr连接到字符串dstStr的尾部。 程序的运行结果如下: Please enter the source string:abcd↙ Please enter the other string:efgh↙ The concat is: abcdefgh 按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 include <stdio.h> void MyStrcat(char *dstStr, char *srcStr); int main() { char s[80]; //源字符串 char t[80]; //待连接字符串 printf("Please enter the source string: n"); gets(s); printf("Please enter the other string: "); gets(t); //输入字符串 MySt
A.第19行: *dstStr != '0' 第25行: *dstStr = * srcStr 第29行: *dstStr = '0'
B.第19行: dstStr != '0' 第25行: dstStr = srcStr 第29行: *dstStr = '0'
C.第19行: *dstStr == '0' 第25行: *dstStr = * srcStr 第29行: *dstStr = 'n'
D.第19行: dstStr == '0' 第25行: dstStr = srcStr 第29行: *dstStr = 'n'