計算機等級考試三級PC上級題精選21-30(2)
上機題之22以下內(nèi)容為程序代碼:
;* 請編制程序PROG1.ASM, 其功能是: 內(nèi)存中從SOURCE開始連續(xù)
;* 存放著二十一個八位有符號數(shù)(補碼),其相鄰兩數(shù)之間差值不超過
;* -8至7。對這種變化緩慢的數(shù)據(jù)可采用差分方法進行壓縮。即第一
;* 個數(shù)據(jù)不變,其后的數(shù)據(jù)取與前一數(shù)據(jù)的差值并用四位二進制補碼
;* 表示, 兩個差值拼成一個字節(jié), 前一個差值放在高四位,后一個差
;* 值放在低四位。
;* 例如:
;* 原數(shù)據(jù)(X[n]): 23H,27H,2AH,29H,22H,...
;* 壓縮后(Y[n]): 23H, 43H, F9H,...
;* 編程按上述方法進行壓縮, 結(jié)果保存在RESULT開始的內(nèi)存單
;* 元中。
;* 部分程序已在PROG1.ASM中給出, 請?zhí)羁誃EGIN和END之間已給
;* 出的.源程序使其完整(空白已用橫線標(biāo)出, 每行空白一般只需一條
;* 指令, 但功能相當(dāng)?shù)亩鄺l指令亦可)或刪除BEGIN和END之間原有的
;* 代碼并自行編寫程序片段來完成要求的功能。
;* 原始數(shù)據(jù)由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內(nèi)
;* 存單元中, 結(jié)果要求從RESULT開始存放, 由過程SAVE保存到文件
;* OUTPUT1.DAT中。
;* 對程序必須進行匯編, 并與IO.OBJ鏈接產(chǎn)生PROG1.EXE 執(zhí)行文
;* 件, 最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。
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 ’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
MOV ES,AX ; 置附加段寄存器
LEA DX,SOURCE ; 數(shù)據(jù)區(qū)起始地址
LEA SI,NAME0 ; 原始數(shù)據(jù)文件名起始地址
MOV CX,2*N+1 ; 字節(jié)數(shù)
CALL LOAD ; 從"input1.dat"中讀取數(shù)據(jù) http://m.ardmore-hotel.com/
【計算機等級考試三級PC上級題21-30(2】相關(guān)文章: