- 相關推薦
2007年4月全國計算機等級考試三級PC技術上機試題
試題1:
〈三級PC南開100題〉的第五題
一、請編制程序,其功能是:內存中從SOURCE開始連續(xù)存放著21個八位有符號數(補碼),其相鄰兩數之間差值不超過-8至7。對這種變化緩慢的數據可采用差分方法進行壓縮。即第一個數據不變,其后的數據取與前一數據的差值并用四位二進制補碼表示,兩個差值拼成一個字節(jié),前一個差值放在高四位,后一個差值放在低四位。
例如:
原數據(X[n]):23H,27H,2AH,29H,22H…
壓縮后(Y[n]):23H, 43H, F9H…
編程按上述方法進行壓縮,結果保存在RESULT開始的內存單元中。
部分程序已給出, 其中原始數據由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內存單元中。運算結果要求從RESULT開始存放,由過程SAVE保存到文件OUTPUT1.DAT中。
填空BEGIN和END之間已給出的一段源程序使其完整(空白已用橫線標出,每行空白一般只需一條指令, 但采用功能相當的多條指令亦可),或刪除BEGIN和END之間原有的代碼并自行編程來完成要求的功能。
對程序必須進行匯編,并與IO.OBJ鏈接產生PROG1.EXE執(zhí)行文件,最終運行程序產生結果(無結果或結果不正確者均不得分)。調試中若發(fā)現整個程序中存在錯誤之處, 請加以修改。
試題程序:
EXTRN LOAD:FAR,SAVE:FAR
N EQU 10
STAC SEGMENT STACK
DB 128 DUP(?)
STAC ENDS
DATA SEGMENT
SOURCE DB 2*N+1 DUP(?)
RESULT DB N+1 DUP(0)
NAME0 DB #39;INPUT1.DAT#39;,0
NAME1 DB #39;OUTPUT1.DAT#39;,0
NDATA DB N DUP(0)
PDATA DB N DUP(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
MOV ES,AX ;置附加段寄存器
LEA DX,SOURCE ;數據區(qū)起始地址
LEA SI,NAME0 ;原始數據文件名
MOV CX,2*N+1 ;字節(jié)數
CALL LOAD ;從#39;INPUT1.DAT#39;中讀取數據
;****BEGIN****
LEA SI,SOURCE
LEA DI,RESULT
CLD
MOVSB ;Y[0]=X[0]
XOR BX,BX ;FLAG=0
MOV DX,N*2 ;COUNTER
COMPRESS:
LODSB ;X[n]-X[n-1]
SUB _______________ ;FLAG=NOT FLAG
________________________
J_______ LOW_HEX
MOV CL,4
________ AL,CL
MOV AH,AL
JMP NEXT
LOW_HEX:
_________________________
OR AL,AH
STOSB
NEXT: _________________________
JNE COMPRESS
;****END****
LEA DX,RESULT ;結果數據區(qū)首址
LEA SI,NAME1 ;結果文件名
MOV CX,N+1 ;字節(jié)數
CALL SAVE ;保存結果到文件
RET
START ENDP
CODE ENDS
END START
答案:
5.(1)AL,[SI-2]
(2)XOR BX,0FFH
(3)Z
(4)SHL
(5)AND AL,0FH
(6)DEC DX
【4月全國計算機等級考試三級PC技術上機試題】相關文章:
2004年全國計算機等級考試三級C語言全真上機試題解析08-10
2004年9月全國計算機等級考試三級(PC技術)筆試試卷08-10
計算機三級網絡技術上機考試題08-05
2013年計算機等級考試三級網絡技術試題08-05
全國計算機等級考試三級信息、網絡、數據庫上機編程題15道08-10
2017全國計算機等級考試試題及答案08-07
全國計算機等級考試一級試題及答案08-07
2017全國計算機等級考試一級試題及答案08-07