第六套
===============================================================================
試題說(shuō)明 :
===============================================================================
請(qǐng)編制程序PROG1.ASM, 其功能是:內(nèi)存中連續(xù)存放著十六個(gè)10
位無(wú)符號(hào)二進(jìn)制數(shù)DB(9)DB(8)…DB(0),其存放格式均為
DB(9) DB(8) DB(7) DB(6) DB(5) DB(4) DB(3) DB(2) DB(1) DB(0) 0 0 0 0 0 0
│←─── 低地址字節(jié) ───→││←──高地址字節(jié)──→│
請(qǐng)判別這十六個(gè)10位二進(jìn)制數(shù)是否小于等于200H;若小于等于
200H,則相應(yīng)地在內(nèi)存中存入01H;否則,存入00H。最后存放這十
六個(gè)10位二進(jìn)制數(shù)中小于等于200H的10位無(wú)符號(hào)二進(jìn)制數(shù)的個(gè)數(shù)n
(n用一個(gè)字節(jié)表示)。
例如:
內(nèi)存中有 48H,C0H(10位二進(jìn)制數(shù)0100100011B(123H)按48H、
C0H的形式順序存放);91H,40H(10位二進(jìn)制數(shù)1001000101B(245H)按
91H、40H的形式順序存放);80H,00H(10位二進(jìn)制數(shù)1000000000B
(200H)按80H、00H的形式順序存放);…
結(jié)果為 01H,00H,01H…(共十六個(gè)字節(jié)),后跟n
部分程序已給出,其中原始數(shù)據(jù)由過(guò)程LOAD從文件INPUT1.DAT
中讀入SOURCE開(kāi)始的內(nèi)存單元中。運(yùn)算結(jié)果要求從RESULT開(kāi)始存放,
由過(guò)程SAVE保存到OUTPUT1.DAT文件中。
填空BEGIN和END之間已給出的源程序使其完整 (空白已用橫線
標(biāo)出,每行空白一般只需一條指令,但采用功能相當(dāng)?shù)亩鄺l指令亦
可), 或刪除BEGIN和END之間原有的代碼并自行編程來(lái)完成要求的
功能。
對(duì)程序必須進(jìn)行匯編, 并與IO.OBJ鏈接產(chǎn)生PROG1.EXE執(zhí)行文
件,最終運(yùn)行程序產(chǎn)生結(jié)果(無(wú)結(jié)果或結(jié)果不正確者均不得分)。調(diào)
試中若發(fā)現(xiàn)整個(gè)程序中存在錯(cuò)誤之處,請(qǐng)加以修改。
===============================================================================
程序 :
===============================================================================
EXTRN LOAD:FAR,SAVE:FAR
N EQU
STAC SEGMENT STACK
DB 128 DUP (?)
STAC ENDS
DATA SEGMENT
SOURCE DW N 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
LEA DX,SOURCE ; 數(shù)據(jù)區(qū)起始地址
LEA SI,NAME0 ; 原始數(shù)據(jù)文件名
MOV CX,N*2 ; 字節(jié)數(shù)
CALL LOAD ; 從 ’INPUT1.DAT’中讀取數(shù)據(jù)
; **** BEGIN ****
MOV DI,OFFSET RESULT
MOV CH,N
MOV CL,___
MOV BX,0
MOV DX,0100H
PRO: MOV AH,BYTE PTR SOURCE[BX] ; 10位無(wú)符號(hào)二進(jìn)制數(shù)高八位
MOV AL,______________________ ; 10位無(wú)符號(hào)二進(jìn)制數(shù)低二位
CMP AX,_____
JNBE C_0
MOV [DI],__
INC __
INC DI
JMP JUMP
C_0: MOV [DI],DL
__________________
JUMP: ADD BL,2
DEC CH
JNZ PRO
MOV [DI],CL
; **** END ****
LEA DX,RESULT ; 結(jié)果數(shù)據(jù)區(qū)首址
LEA SI,NAME1 ; 結(jié)果文件名
MOV CX,N+1 ; 結(jié)果字節(jié)數(shù)
CALL SAVE ; 保存結(jié)果到文件
RET
START ENDP
CODE ENDS
END START
===============================================================================
所需數(shù)據(jù) :
===============================================================================
@2 input1.dat 001
FF C0 80 00 80 40 7F C0 FF 00 FA 40 FA 80 AA 40 CD 40 11 C0 00 00 31 80 31 40 66 40 66 C0 33 40
#E
@3 $output1.hex 001
FFFEFFFEFFFFFFFFFFFEFEFEFEFEFEFEF612
#E
希望與更多計(jì)算機(jī)等級(jí)考試的網(wǎng)友交流 請(qǐng)進(jìn)入計(jì)算機(jī)等級(jí)考試論壇
更多信息請(qǐng)?jiān)L問(wèn):考試吧計(jì)算機(jī)等級(jí)考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |