A、CMP BUF1,BYTE PTR BUF2+3
B、MOV AL,BUF1 CMP AL,BUF2+2
C、MOV AL,BUF1 CMP AL,BYTE PTR BUF2+2
D、MOV AL,BUF1 CMP AL,BUF2+3
第2题
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从文件INPUT.DAT中读入SOURCE开始的内存单元中,结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编写程序片段来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
【试题程序】
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.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
NOV AX, DATA
MOV DS,AX
LEA DX,SOURCE ; 数据区起始地址
LEA SI,NAME0 ; 原始数据文件名起始地址
NOV CX,N ; 字节数
CALL LOAD ; 从'INPUT.DAT'中读取数据
; ******** BEGIN ********
LEA SI, SOURCE
LEA DI, RESULT
CLD
MOV CX,N
MOV BL,RATE1
MOV BH,RATE2
NEXT: (1)
CMP AL,DELTA
J (2) GREAT
MUL BL
JMP STORE
GREAT: (3)
MUL BH
(4)
STORE: (5)
(6)
INC SI
LOOP NEXT
; ******** END ********
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名起始地址
MOV CX,N*2 ; 字节数
CALL SAVE ; 保存结果到'OUTPUT.DAT'文件
RET
START ENDP
CODE ENDS
END START
第3题
A.30
B.20
C.40
D.10
第4题
第5题
第6题
例如:
原数据为:X[n]: 23H, 27H, 2AH, 29H, 22H...
压缩后为:Y[n]:23H, 43H, F9H...
部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
填空BEGIN和END之间已给出的一段源程序使其完整(空白己用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。
试题程序:
EXTRN LOAD: FAR, SAVE: FAR
N EQU 20
DSEG SEGMENT
L DW ?
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
LEA DX,L ; 数据区起始地址
LEA SI,NAME0 ; 输入文件名首址送SI
MOV CX,2+N ; 输入字节数送CX
CALL LOAD ; 从INPUT1.DAT中读取数据
;****BEGIN****
LEA SI,SOURCE
LEA DI,RESULT
CLD
MOVSB ; Y[0]=X[0]
XOR BX, BX ; FLAG=0
MOV DX,N*2 ; 计数
ZTE: LODSB
SUB (1) ; X [n]-X [n-1]
(2) ; FLAG=NOT FLAG
J (3) SWIM
MOV 4, CL
MOV AH, AL
JMP NEXT
SWIM: (4)
OR AL, AH
STOSB
NEXT: (5)
JN
第7题
(2)对建立的数据表,选择“姓名”、“总计”两列数据,建立“柱形圆柱图”图表,图表标题为“财务部2005年考勤统计图”,设置分类(X)轴为“姓名”,数值(Z)轴为“总计”,嵌入在工作表A7:F20区域中。
(3)将工作表命名为“财务部2005年考勤统计表”,原名保存文件。
第8题
2.打开工作簿文件EX12.XLS,选择数据建立“簇状柱形图”(“总计”项不计),图表标题为“汇总表”,系列产生在“列”,数据标志为“值”,并将其嵌入A6:F20区域中,完成后按原文件名保存。
第9题
[说明]
在计算机控制中,有些数据补偿、计算及转换等参数的计算非常复杂,编程难,程序长且运算费时,但是用数表却比较容易实现。
设有256个字节的数据,已按从小到大的顺序存放在以BINTAB为首地址的数据区单元中,现要求查找其中值为126的数据,用对分查表法查询的汇编程序如下:
[汇编程序代码]
DATA SEGMENT
BINTAB DBl8,25,32,46,56,78,… ;第1~100个数据
DB 90,95,99,100,106,126,… ;第101~200个数据
DB 189,195,197,202,206,216,… ;第201~256个数据
COUNT EQU 256
FLAG DW ?
KEY EQU (1)
DATA ENDS
STAK SEGMENT
STPN DB 20 DUP(?)
STAK ENDS
CODE SEGMENT
ASSUME CS,CODE, DS,DATA, ES:DATA, SS:STAK
BINSEAT PROC FAR
START, MOV AX, DATA
MOV DS, AX
MOV ES, AX
LEA SI, BINTAB
MOV CX, COUNT
MOV DX, 1
MOV AX, SI
ADD AX, CX
MOV DI, AX
MOV AL, KEY
LOP0, MOV BX, SI
ADD BX, DI
SHR BX, 1
CMP AL, [BX]
JZ FOUND
PUSHF
(2)
JZ NFOUND
POPF
JL LESS
MOV SI, BX
JMP NEXT
LESS, (3)
NEXT, (4)
JMP LOP0
NFOUND: MOV AX, DX ;未找到,标志全1送DX
FOUND: MOV AX, DX
MOV FLAG, AX
RET
BINSEAT ENDP
CODE ENDS
(5)
请根据试题的要求,将汇编程序代码中(1)~(5)空缺处的内容填写完整。
第10题
2.对建立的数据表,选择“姓名”、“总计”两列数据,建立“柱形圆柱图”图表,图表标题为“财务部2005年考勤统计图”,设置分类(X)轴为“姓名”,数值(Z)轴为“总计”,嵌入在工作表的A7:F20区域中。
3.将工作表命名为“财务部2005年考勤统计表”,用原名保存文件。
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!