請編制程序,其功能是:剔除10個(gè)8位無符號二進(jìn)制數(shù)據(jù)中的最大值和最小值,然后按四舍五入原則計(jì)算其
請編制程序,其功能是:剔除10個(gè)8位無符號二進(jìn)制數(shù)據(jù)中的最大值和最小值,然后按四舍五入原則計(jì)算其余8個(gè)數(shù)據(jù)的算術(shù)平均值,將剔除最大值和最小值之后的8個(gè)數(shù)據(jù)依次存入指定的內(nèi)存區(qū)域中,并在其后存放平均值。
例如:
內(nèi)存中有:01H,05H,04H,00H,07H,09H,02H,06H,08H,03H
結(jié)果為: 01H,05H,04H,07H,02H,06H,08H,03H,05H
部分程序已給出,其中原始數(shù)據(jù)由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內(nèi)存單元中,運(yùn)算結(jié)果要求從 RESULT開始存放,由過程SAVE保存到文件OUTPUT1.DAT中。
請?zhí)羁誃EGIN和END之間已給出的源程序使其完整,空白已用橫線標(biāo)出,每個(gè)空白一般只需一條指令,但采用功能相當(dāng)?shù)亩鄺l指令亦可,或刪除BEGIN和END之間原有的代碼并自行編程來完成所要求的功能。
對程序必須進(jìn)行匯編,并與IO.OBJ鏈接產(chǎn)生可執(zhí)行文件,最終運(yùn)行程序產(chǎn)生結(jié)果。調(diào)試中若發(fā)現(xiàn)整個(gè)程序中存在錯(cuò)誤之處,請加以修改。
[試題程序]
EXTRN LOAD:FAR,SAVE:FAR
N EQU 10
DSEG SEGMENT
SOURCE DB N DUP(?)
RESULT DB N-1 DUP(0)
NAME0 DB 'INPUT1.DAT',0
NAME1 DB 'OUTPUT1.DAT',0
TEMP DW 0
DSEG ENDS
SSEG SEGMENT STACK
DB 200 DUP(?)
SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,SS:SSEG,DS:DSEG,ES:DSEG
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 ********
XOR AX,AX
XOR BX,BX
XOR DX,DX
MOV SI,OFFSET SOURCE
MOV BL, (1) ; 取第一個(gè)數(shù)作為最大值暫存BL
MOV DL, (2) ; 取第一個(gè)數(shù)作為最小值暫存DL
MOV CX,N
GOON: ADD AL,[SI]
ADC AH,0
CMP BL,[SI]
JA (3)
MOV BL,[SI]
CONT: CMP DL,[SI]
(4)
MOV DL,[SI]
NEXT: INC SI
LOOP GOON
CLD
LEA SI,SOURCE
LEA DI,RESULT
MOV CX,
正確答案:(1) [SI] (2) [SI] (3) CONT(4) JL NEXT (5) 8 (6) INC AL(1) [SI] (2) [SI] (3) CONT(4) JL NEXT (5) 8
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。