




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第一套=試題說明 :=請編制程序 PROG1.ASM,其功能是:內(nèi)存中連續(xù)存放著二個無符號字節(jié)序列 A(k)和 B(k)(k=0,.,9;下同),求序列 C(k),C(k)=A(k)+B(k)。 C(k)以字的形式按 C(0),.,C(9)的順序連續(xù)存放。例如:序列 A(k)為 30H,31H,61H,FFH,.;序列 B(k)為 00H,01H,F1H,0AH,.。則結(jié)果 C(k)為 0030H,0032H,0152H,0109H,.。部分程序已給出, 其中原始數(shù)據(jù)由過程LOAD 從文件INPUT1.DAT中讀入SOURCE 開始的內(nèi)存單元中,運算結(jié)果要求從 RESULT 開始存放,由過程S
2、AVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之間已給出的源程序使其完整 (空白已用橫線標出,每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可), 或刪除 BEGIN 和 END 之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編, 并與 IO.OBJ產(chǎn)生 PROG1.EXE 執(zhí)行文件, 最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 10STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS
3、 DATA SEGMENTSOURCE DB N*2 DUP(?) ; 順序存放 A0,.,A9,B0,.,B9RESUW N DUP(0) ; 順序存放 C0,.,C9NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE, DS:DATA, SS:STACSTART PROC FAR PUSH DSXOR AX,AXPUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 數(shù)據(jù)區(qū)起始地址LEA SI,NAME0 ; 原始數(shù)據(jù)文件名MOV CX,N*2 ; 字節(jié)
4、數(shù)CALL LOAD ; 從 INPUT1.DAT中; * BEGIN * MOV DI,MOV BX,數(shù)據(jù)PRO: MOV AH,0MOV AL,SOURCEBX+10 ; 序列 Bk 中的一個字節(jié); Ck=Bk+Ak JNC JUMP ; 無進位轉(zhuǎn) JUMP; 有進位,進位入AHJUMP: MOV DI,AX ; Ck=Bk+Ak 的字的形式存入 RESULT INC BXDEC CX JNZ PRO; * END *LEA DX,RESULT ; 結(jié)果數(shù)據(jù)區(qū)首址LEA SI,NAME1 ; 結(jié)果文件名MOV CX,N*2 ; 結(jié)果字節(jié)數(shù) CALL SAVE ; 保存結(jié)果到文件 RETST
5、ART ENDP CODE ENDS END START=所需數(shù)據(jù) :=2 input1.dat 001FF 80 7F 00 7F 80 FF 80 81 00F 80 00 81 00 00 81 FE FF #E3 $output1.hex 00101FE80FE00#EE700EFE80FE00FF7F第二套=試題說明 :=請編制程序 PROG1.ASM, 其功能是: 內(nèi)存中連續(xù)存放著二個有符號字節(jié)序列 A(k)和 B(k)(k=0,.,9;下同),求序列 C(k),C(k)=A(k)-B(k)。 C(k)以有符號字的形式按 C(0),.,C(9)的順序連續(xù)存放。例如:序列 A(k)為
6、 30H,80H(-128D),7FH(127D),.;序列 B(k)為 00H,7FH(127D),80H(-128D),.。則結(jié)果 C(k)為 0030H,FF01H,00FFH,.。部分程序已給出,其中原始數(shù)據(jù)由過程LOAD 從文件 INPUT1.DAT中讀入SOURCE 開始的內(nèi)存單元中,運算結(jié)果要求從 RESULT 開始存放,由過程SAVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之間已給出的源程序使其完整 (空白已用橫線標出,每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可), 或刪除 BEGIN 和 END 之間原有的代碼并自行編程來完成要求的
7、功能。對程序必須進行匯編, 并與 IO.OBJ產(chǎn)生 PROG1.EXE 執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 10STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N*2 DUP(?) ; 順序存放 A0,.,A9,B0,.,B9RESUW N DUP(0) ; 順序存放 C0,.,C9NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,
8、0 DATA ENDSCODE SEGMENTAME CS:CODE, DS:DATA, SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AXMOV AX,DATAMOV DS,AXLEA DX,SOURCE ; 數(shù)據(jù)區(qū)起始地址 LEA SI,NAME0 ; 原始數(shù)據(jù)文件名 MOV CX,N*2 ; 字節(jié)數(shù)CALL LOAD ; 從 INPUT1.DAT中; * BEGIN *數(shù)據(jù)LEA DI,RESULT ; 結(jié)果從 RESULT 開始存放MOV CX,N MOV BX,0 MOV AH,0PRO: MOV AL,SOURCEBX ; 序列 Ak 中的
9、一個字節(jié)MOV DH,AL; Ck=Ak-Bk JNO STAY ; 無溢出轉(zhuǎn)STAYADD DH,0 ; 有溢出DEC1 ; Ak 為正數(shù)(為一個正數(shù)減去一個負; 數(shù),結(jié)果為負數(shù)的溢出情況)轉(zhuǎn) DEC1MOV AH,; Ak 為負數(shù)(為一個負數(shù)減去一個正; 數(shù),結(jié)果為正數(shù)的溢出情況)將結(jié)果; 變?yōu)橛蟹栕值男问剑樨摚㎎MP DEC1: MOV AH,00H ; 將結(jié)果變?yōu)橛蟹栕值男问剑檎㎎MP STAY: ; AL 中數(shù)的符號擴展到 AH,正的字節(jié); 變成正的字,負的字節(jié)變成負的字JUMP1: MOV DI,AX ADD DI,2INC BX DEC CX JNZ PRO; * EN
10、D *LEA DX,RESULT ; 結(jié)果數(shù)據(jù)區(qū)首址LEA SI,NAME1 ; 結(jié)果文件名MOV CX,N*2 ; 結(jié)果字節(jié)數(shù) CALL SAVE ; 保存結(jié)果到文件 RETSTART ENDP CODE ENDS END START=所需數(shù)據(jù) :=2 input1.dat 00180 C0 81 00 7F 40 3F 7F C0 81 7F 40 7F 00 7F 3F 40 80 81 9C #E3 $output1.hex 001FE007F00FD00#EEFF000000FFC0FF1A00A1第三套=試題說明 :=請編制程序 PROG1.ASM, 其功能是: 內(nèi)存中連續(xù)存放著二
11、個無符號字節(jié)序列 A(k)和 B(k)(k=0,.,9;下同),求序列 C(k),C(k)=A(k)B(k)。 C(k)以字的形式按 C(0),.,C(9) 的順序連續(xù)存放。例如:序列 A(k)為 FFH,80H,7FH,00H,.;序列 B(k)為 FFH,80H,01H,02H,.。則結(jié)果 C(k)為 FE01H,4000H,007FH,0000H,.。部分程序已給出,其中原始數(shù)據(jù)由過程LOAD 從文件 INPUT1.DAT中讀入SOURCE 開始的內(nèi)存單元中,運算結(jié)果要求從 RESULT 開始存放,由過程SAVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之間
12、已給出的源程序使其完整 (空白已用橫線標出, 每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可), 或刪除 BEGIN 和 END 之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編, 并與 IO.OBJ產(chǎn)生 PROG1.EXE 執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 10STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N*2 DUP(?)RESUW N
13、DUP(0)NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE, DS:DATA, SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 數(shù)據(jù)區(qū)起始地址LEA SI,NAME0 ; 原始數(shù)據(jù)文件名MOV CX,N*2 ; 字節(jié)數(shù)CALL LOAD ; 從 INPUT1.DAT中; * BEGIN *,OFFSET RESULT MOV BX,0數(shù)據(jù)PRO: ,SOURCEBX+NM
14、OV DI,AXADD DI,2 INC BXJNZ PRO; * END *LEA DX,RESULT ; 結(jié)果數(shù)據(jù)區(qū)首址LEA SI,NAME1 ; 結(jié)果文件名MOV CX,N*2 ; 結(jié)果字節(jié)數(shù) CALL SAVE ; 保存結(jié)果到文件 RETSTART ENDP CODE ENDS END START=所需數(shù)據(jù) :=2 input1.dat 001FF 80 7F 00 01 80 FF 80 01 00 FF 80 01 02 00 #E3 $output1.hex 001F 03FFE01F80F7F80FE017FFE003C#E第四套=試題說明 :=請編制程序 PROG1.ASM
15、, 其功能是: 內(nèi)存中連續(xù)存放著二個有符號字節(jié)序列 A(k)和 B(k)(k=0,.,9;下同),求序列 C(k),C(k)=A(k)B(k)。運算結(jié)果按序以字的形式連續(xù)存放(低字節(jié)為商,高字節(jié)為余數(shù))。例如:序列 A(k)為 FFH(-1D), 81H(-127D),C0H(-64D),80H(-128D),.;序列 B(k)為 81H(-127D),40H(64D),81H(-127D),01H(1D),.。則結(jié)果 C(k)為 FF00H(00H(0D)為商、FFH(-1D)為余數(shù)),C1FFH,C000H,0080H,.。部分程序已給出,其中原始數(shù)據(jù)由過程LOAD 從文件 INPUT1.
16、DAT中讀入SOURCE 開始的內(nèi)存單元中,運算結(jié)果要求從 RESULT 開始存放,由過程SAVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之間已給出的源程序使其完整 (空白已用橫線標出, 每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可), 或刪除 BEGIN 和 END 之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編, 并與 IO.OBJ產(chǎn)生 PROG1.EXE 執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQ
17、U 10STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N*2 DUP(?)RESUW N DUP(0)NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE,DS:DATA,SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 數(shù)據(jù)區(qū)起始地址LEA SI,NAME0 ; 原始數(shù)據(jù)文件名MOV CX,N
18、*2 ; 字節(jié)數(shù)CALL LOAD ; 從INPUT1.DAT中; * BEGIN *數(shù)據(jù)MOV DI, MOV CX,NPRO: MOV AL,; AL 中數(shù)的符號擴展到 AH,正的字節(jié); 變成正的字,負的字節(jié)變成負的字SOURCEBX+NMOV,AXADD DI,2 INC BX DEC CX JNZ PRO; * END *LEA DX,RESULT ; 結(jié)果數(shù)據(jù)區(qū)首址LEA SI,NAME1 ; 結(jié)果文件名MOV CX,2*N ; 結(jié)果字節(jié)數(shù) CALL SAVE ; 保存結(jié)果到文件 RETSTART ENDP CODE ENDS END START=所需數(shù)據(jù) :=2 input1.da
19、t 001FF 81 C0 80 00 80 40 7F 20 7F 81 40 81 01 7F 80 C0 81 01 7F #E3 $output1.hex 001FF00003EFF3F7#EFFEFF00FF00FFDFEFF1F第五套=試題說明 :=請編制程序 PROG1.ASM, 其功能是: 內(nèi)存中連續(xù)存放著十六個12 位二進制數(shù) DB(11)DB(10).DB(0), 每個二進制數(shù)均用兩個字節(jié)表示,其存放格式均為DB(11)DB(10)DB(9)DB(8)DB(7)DB(6)DB(5)DB(4) DB(3)DB(2)DB(1)DB(0) 0 0 0 0低地址字節(jié)高地址字節(jié)請按序
20、將每個 12 位二進制數(shù)轉(zhuǎn)換成以下格式DB(7)DB(6)DB(5)DB(4)DB(3)DB(2)DB(1)DB(0) 0 0 0 0 DB(11)DB(10)DB(9)DB(8) 低地址字節(jié)高地址字節(jié)轉(zhuǎn)換結(jié)果按原序存放在內(nèi)存中。例如:內(nèi)存中有 12H,30H(12 位二進制數(shù) 000100100011B(123H)按 12H、 30H 的形式順序存放);04H,50H(12 位二進制數(shù) 000001000101B(45H)按 04H、50H 的形式順序存放); 61H,00H(12 位二進制數(shù)011000010000B(610H)按 61H、00H 的形式順序存放;結(jié)果為 0123H,004
21、5H,0610H,.部分程序已給出,其中原始數(shù)據(jù)由過程LOAD 從文件 INPUT1.DAT中讀入SOURCE 開始的內(nèi)存單元中。運算結(jié)果要求從 RESULT 開始存放,由過程SAVE 保存到OUTPUT1.DAT 文件中。填空 BEGIN 和 END 之間已給出的源程序使其完整 (空白已用橫線標出,每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可), 或刪除 BEGIN 和 END 之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編, 并與 IO.OBJ產(chǎn)生 PROG1.EXE 執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處
22、,請加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 16STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N*2 DUP(?)RESUW N DUP(0)NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE,DS:DATA,SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURC
23、E ; 數(shù)據(jù)區(qū)起始地址LEA SI,NAME0 ; 原始數(shù)據(jù)文件名MOV CX,N*2 ; 字節(jié)數(shù)CALL LOAD ; 從 INPUT1.DAT中; * BEGIN * MOV BX,0MOV DI,OFFSET RESULT MOV CH,NMOV CL,PRO: MOV AX, MOV DX,AX數(shù)據(jù)SHR DL, ; 12 位無符號二進制數(shù)高八位右移 SHR AH, ; 12 位無符號二進制數(shù)低四位右移 SHL AL, ; 12 位無符號二進制數(shù)高八位OR ; 新格式 12 位無符號二進制數(shù)低八位MOV AL,AHMOV AH,DL ; 新格式 12 位無符號二進制數(shù)高四位MOV BY
24、TE PTR DI, MOV BYTE PTR DI+1, ADD DI,2ADD BX,2 DEC CH JNZ PRO; * END *LEA DX,RESULT ; 結(jié)果數(shù)據(jù)區(qū)首址LEA SI,NAME1 ; 結(jié)果文件名MOV CX,N*2 ; 結(jié)果字節(jié)數(shù) CALL SAVE ; 保存結(jié)果到文件 RETSTART ENDP CODE ENDS END START=所需數(shù)據(jù) :=2 input1.dat 0010 FF 00 F0 F0 0F F0 F0 00 0F 00 00 F0 00 00 00 50 05 00 50 00 0A A0 A0 A0 AA 00 AA A055 50
25、#E3 $output1.hex 00100F00FF0F0F000#EFF00F0FAA555F55FF555F5AAFA08第六套=試題說明 :=請編制程序 PROG1.ASM, 其功能是:內(nèi)存中連續(xù)存放著十六個 10位無符號二進制數(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é)請判別這十六個 10 位二進制數(shù)是否小于等于 200H;若小于等于 200H,則相應(yīng)地在內(nèi)存中存入 01H;否則,存入 00H。最后存放這十六個 1
26、0 位二進制數(shù)中小于等于 200H 的 10 位無符號二進制數(shù)的個數(shù) n(n 用一個字節(jié)表示)。例如:內(nèi)存中有 48H,C0H(10 位二進制數(shù) 0100100011B(123H)按 48H、 C0H 的形式順序存放);91H,40H(10 位二進制數(shù) 1001000101B(245H)按91H、40H 的形式順序存放);80H,00H(10 位二進制數(shù) 1000000000B (200H)按 80H、00H 的形式順序存放);.結(jié)果為 01H,00H,01H.(共十六個字節(jié)),后跟 n部分程序已給出,其中原始數(shù)據(jù)由過程LOAD 從文件 INPUT1.DAT中讀入SOURCE 開始的內(nèi)存單元中
27、。運算結(jié)果要求從 RESULT 開始存放,由過程SAVE 保存到OUTPUT1.DAT 文件中。填空 BEGIN 和 END 之間已給出的源程序使其完整 (空白已用橫線標出,每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可), 或刪除 BEGIN 和 END 之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編, 并與 IO.OBJ產(chǎn)生 PROG1.EXE 執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 16STAC SEGMENT STACK
28、DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DW N DUP(?)RESUB N+1 DUP(0)NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE,DS:DATA,SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 數(shù)據(jù)區(qū)起始地址LEA SI,NAME0 ; 原始數(shù)據(jù)文件名MOV CX,N*2 ; 字節(jié)數(shù)CALL LOAD ; 從 I
29、NPUT1.DAT中; * BEGIN *MOV DI,OFFSET RESULT MOV CH,NMOV CL,MOV BX,0 MOV DX,0100H數(shù)據(jù)PRO: MOV AH,BYTE PTR SOURCEBX ; 10 位無符號二進制數(shù)高八位MOV AL,; 10 位無符號二進制數(shù)低二位CMP AX, JNBE C_0 MOV DI, INC INC DI JMP JUMPC_0: MOV DI,DLJUMP: ADD BL,2DEC CHJNZ PRO MOV DI,CL; * END *LEA DX,RESULT ; 結(jié)果數(shù)據(jù)區(qū)首址LEA SI,NAME1 ; 結(jié)果文件名MOV
30、CX,N+1 ; 結(jié)果字節(jié)數(shù) CALL SAVE ; 保存結(jié)果到文件 RETSTART ENDP CODE ENDS END START=所需數(shù)據(jù) :=2 input1.dat 001FF 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 C033 40 #E3 $output1.hex 001EEFFEFEFEFEFEFEFEF612#E第七套=試題說明 :=請編制程序 PROG1.ASM, 其功能是: 內(nèi)存中連續(xù)存放著 10 個二進制字節(jié),每個二進制字節(jié)的序號依次定義為 0
31、,1,.9。統(tǒng)計每個字節(jié)中 1 的個數(shù) N(0), N(1),., N(9)(均用一個字節(jié)表示),然后按序?qū)?N(0)至 N(9)存入內(nèi)存中,最后再用一個字節(jié)表示這 10 個字節(jié)中為 1 的位的總數(shù) n(n= N(0)+ N(1)+.+ N(9))。例如:內(nèi)存中有 00H,01H,03H,.結(jié)果為 00H,01H,02H,.,最后為 n部分程序已給出,其中原始數(shù)據(jù)由過程LOAD 從文件 INPUT1.DAT中讀入SOURCE 開始的內(nèi)存單元中。運算結(jié)果要求從 RESULT 開始存放,由過程SAVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之間已給出的源程序使其完整
32、 (空白已用橫線標出,每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可), 或刪除 BEGIN 和 END 之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編, 并與 IO.OBJ產(chǎn)生 PROG1.EXE 執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 10STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N DUP(?)RESUB N+1 DUP(0)NAME0
33、DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE, DS:DATA, SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 數(shù)據(jù)區(qū)起始地址LEA SI,NAME0 ; 原始數(shù)據(jù)文件名MOV CX,N ; 字節(jié)數(shù)CALL LOAD ; 從 INPUT1.DAT中; * BEGIN * MOV CL,NMOV DI,OFFSET RESULT MOV BX,0MOV DH,0 PRO: MOV
34、 DL,0MOV AL,SOURCEBX MOV CH,COUNT: JNC INC DLJUMP: DEC CH數(shù)據(jù)COUNT MOV DI, ADD DH,DL INC DIINC BX DEC CL JNZ PROMOV ; * END *LEA DX,RESULT ; 結(jié)果數(shù)據(jù)區(qū)首址LEA SI,NAME1 ; 結(jié)果文件名MOV CX,N+1 ; 結(jié)果字節(jié)數(shù) CALL SAVE ; 保存結(jié)果到文件 RETSTART ENDP CODE ENDS END START=所需數(shù)據(jù) :=2 input1.dat 00100 01 03 07 0F A7 F5 F7 #E3 $output1.h
35、ex 0015EFDFCFBFAF9F8F7FBD750#E第八套=試題說明 :=請編制程序 PROG1.ASM, 其功能是: 內(nèi)存中連續(xù)存放著 10 個用ASCII 碼表示的十進制個位數(shù),將它們轉(zhuǎn)換成相應(yīng)的二進制字節(jié)N(0), N(1), ., N(9),然后按序?qū)?N(0)至 N(9)存入內(nèi)存中,最后存放它們的和 n(n= N(0)+ N(1)+.+ N(9))。n 用壓縮型(組合型)BCD 碼表示。例如:內(nèi)存中有 30H(0),39H(9),31H(1), .結(jié)果為 00H,09H,01H,.,(后跟 n)部分程序已給出,其中原始數(shù)據(jù)由過程LOAD 從文件 INPUT1.DAT中讀入SO
36、URCE 開始的內(nèi)存單元中。運算結(jié)果要求從 RESULT 開始存放,由過程SAVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之間已給出的源程序使其完整 (空白已用橫線標出,每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可), 或刪除 BEGIN 和 END 之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編, 并與 IO.OBJ產(chǎn)生 PROG1.EXE 執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 10STAC
37、SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N DUP(?)RESUB N+1 DUP(0)NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE, DS:DATA, SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 數(shù)據(jù)區(qū)起始地址LEA SI,NAME0 ; 原始數(shù)據(jù)文件名MOV CX,N ; 字節(jié)數(shù)C
38、ALL LOAD ; 從 INPUT1.DAT中; * BEGIN *MOV DI,OFFSET RESULT MOV BX,0MOV CX,N MOV DL,PRO: MOV AL,SOURCEBXAL,30H MOV DI,AL數(shù)據(jù)ADD AL,DLMOV DL,ALINC BXJNZ PRO; * END *LEA DX,RESULT ; 結(jié)果數(shù)據(jù)區(qū)首址 LEA SI,NAME1 ; 結(jié)果文件名 MOV CX,N+1 ; 結(jié)果字數(shù)CALL SAVE ; 保存結(jié)果到文件RETSTART ENDP CODE ENDS END START=所需數(shù)據(jù) :=2 input1.dat 00130 3
39、9 31 38 32 37 33 36 34 35 #E3 $output1.hex 001 6FEF7FDF8FCF9FBFABA72#E第九套=試題說明 :=請編制程序 PROG1.ASM, 其功能是: 內(nèi)存中連續(xù)存放著 20 個 ASCII 字符, 如果是小寫字母 a 至 z 之間的字符,請把它們轉(zhuǎn)換成相應(yīng)的大寫字母的ASCII 字符(否則不作轉(zhuǎn)換)并統(tǒng)計原 20 個 ASCII字符中字符“z的個數(shù)。轉(zhuǎn)換結(jié)果(包括不作轉(zhuǎn)換的 az 之間的原 ASCII 字符)按序存入內(nèi)存中,之后存放原 20 個ASCII 字符中為字符“z的ASCII 字符的個數(shù)(用一個字節(jié)表示)。例如:內(nèi)存中有 30H
40、(0),31H(1),61H(a),41H(A),7AH(z),.結(jié)果為 30H,31H,41H,41H,5AH,.,后跟用一個字節(jié)表示的原 20個 ASCII 字符中為字符“z的個數(shù)部分程序已給出,其中原始數(shù)據(jù)由過程LOAD 從文件 INPUT1.DAT中讀入SOURCE 開始的內(nèi)存單元中。運算結(jié)果要求從 RESULT 開始存放,由過程SAVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之間已給出的源程序使其完整 (空白已用橫線標出,每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可), 或刪除 BEGIN 和 END 之間原有的代碼并自行編程來完成要求的功能
41、。對程序必須進行匯編, 并與 IO.OBJ產(chǎn)生 PROG1.EXE 執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 20STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N DUP(?)RESUB N+1 DUP(0)NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE,DS:DA
42、TA,SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 數(shù)據(jù)區(qū)起始地址LEA SI,NAME0 ; 原始數(shù)據(jù)文件名MOV CX,N ; 字節(jié)數(shù)CALL LOAD ; 從INPUT1.DAT中; * BEGIN *MOV DI,OFFSET RESULT MOV BX,0MOV DL,0MOV CX,N數(shù)據(jù)PRO: MOV AL,SOURCEBX CMP AL,61HKEEP ; =a JNBE KEEP ; z CMP AL,79H ; =y JBE INC DLNINC: S
43、UB AL, MOV DI,ALINC DI JMP KEEP: MOV DI,ALJUMP: INC BX DEC CXJNZ PRO; * END *LEA DX,RESULT ; 結(jié)果數(shù)據(jù)區(qū)首址LEA SI,NAME1 ; 結(jié)果文件名MOV CX,N+1 ; 結(jié)果字節(jié)數(shù) CALL SAVE ; 保存結(jié)果到文件 RETSTART ENDP CODE ENDS END START=所需數(shù)據(jù) :=2 input1.dat 00130 60 31 61 32 62 33 63 34 64 35 65 41 68 7B 7A 5A 5B 40 5F #E3 $output1.hex 001 CF9
44、FCEBECDBDCCBCCBBBCABABEB784A5A5A4BFA0FE91#E第十套=試題說明 :=請編制程序 PROG1.ASM,其功能是: 內(nèi)存中連續(xù)存放著 10 個字。分別對每個字的字節(jié)和低位字節(jié)進行邏輯與運算及邏輯或運算。 運算結(jié)果以字的形式按序連續(xù)存放(低位字節(jié)存入邏輯與運算的結(jié)果,例如:字節(jié)存入邏輯或運算的結(jié)果)。內(nèi)存中有 AA55H,55AAH,結(jié)果為 FF00H,FF00H,AH,.AH,.部分程序已給出,其中原始數(shù)據(jù)由過程LOAD 從文件 INPUT1.DAT中讀入SOURCE 開始的內(nèi)存單元中。運算結(jié)果要求從 RESULT 開始存放,由過程SAVE 保存到文件 OU
45、TPUT1.DAT 中。填空 BEGIN 和 END 之間已給出的源程序使其完整 (空白已用橫線標出,每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可), 或刪除 BEGIN 和 END 之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編, 并與 IO.OBJ產(chǎn)生 PROG1.EXE 執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 10STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENT
46、SOURCE DW N DUP(?)RESUW N DUP(0)NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE,DS:DATA,SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 數(shù)據(jù)區(qū)起始地址LEA SI,NAME0 ; 原始數(shù)據(jù)文件名MOV CX,N*2 ; 字節(jié)數(shù)CALL LOAD ; 從INPUT1.DAT中; * BEGIN *MOV DI,OFFSET RESU
47、LT MOV CX,NMOV BX,00PRO: MOV AX, MOV DX,AXAND _,DHAH,AL MOV ,DL ADD BX,2數(shù)據(jù)ADD DI,2JNZ PRO; * END *LEA DX,RESULT ; 結(jié)果數(shù)據(jù)區(qū)首址LEA SI,NAME1 ; 結(jié)果文件名MOV CX,N*2 ; 結(jié)果字節(jié)數(shù) CALL SAVE ; 保存結(jié)果到文件 RETSTART ENDP CODE ENDS END START=所需數(shù)據(jù) :=2 input1.dat 00155 AA AA 55 AAF 55 FF 00 00 FF 00 00 #E3 $output1.hex 001F 70 0
48、7 80 80FF00FF005500AA00FF00FF00#EF0000FF887F7F6E微機原理及應(yīng)用習題集(二)第一章微型計算機概論一、單項選擇題1X 的 8 位補碼是 10110100,則 X 的 16 位補碼是。A)0000000010110100C)1111111110110100B)1000000010110100C)0111111110110100二、多項選擇題18 位數(shù) 11011011B 可表示。A)無符號數(shù) 219D) -36 的反碼三、填空題B)-37 的補碼E)91 的原碼C)-36 的補碼F)-91 的原碼1計算機的硬件由、和等部分組成。十進制 68=B=Q=H
49、。 X補=78H,則-X 補=H。234通用編碼字符集UCS的總體結(jié)構(gòu)由、和 容量巨大。四、用補碼求X+Y補與X-Y補,并判斷運算結(jié)果是否溢出1已知X原=10101100,Y補=110001102已知X反=01110110,Y補=00100110五、簡答題編碼空間,12微型機的硬件和?系統(tǒng)應(yīng)用第二章 80X86 微處理器的結(jié)構(gòu)一、判斷題1器。CPU中集成了運算器和控)制(2 事。單 元 的 地址和單 元 的)能直(內(nèi)容是 一回(EU3在執(zhí)行指令期間,接)器。48086CPU 從內(nèi)存中一個字(16 位)必須用兩個總線周期。(狀 態(tài))組5 8086CPU成。二、單項選擇題的 個 總 線 周 期 一
50、 般由4個()1用可實現(xiàn)數(shù)據(jù)總線的雙向傳輸。A)鎖存器B)三態(tài)邏輯開關(guān)C)暫存器D)寄存器2對內(nèi)存單元進行寫操作后,該單元的內(nèi)容。A)變反B)不變C)隨機D)被修改3含有立即數(shù)的指令中,該立即數(shù)被存放在。 A)累加器中元中B)指令操作碼后的內(nèi)存單C)指令操作碼前的內(nèi)存單元中C)由該立即數(shù)所指定的內(nèi)存單元中48086CPU 的 40 根引腳中,有個是分時復用的。A)21B)1C)2D)2458086CPU 工作在最大模式還是最小模式取決于信號。A)M/B) NMIC)MN/D)ALE68086CPU 中 EU 和 BIU 的并行操作是級的并行。A)操作B)運算C) 指令D)處理器78086CPU
51、 向 52H 單元寫入一個字,寫入過程中和 A0 的邏輯電平是。A)0 和 0B)0 和 1C)1 和 0D)1 和 188086CPU 用信號的下降沿在 T1 結(jié)束時將地址信息鎖存在地址鎖存器中。A)M/B)C)ALED)READY三、多項選擇題1微型計算機的基本結(jié)構(gòu)包括。A)運算器F)外設(shè)及接口B)寄存器C)器G)總線D)CPUE)控制器2指令操作數(shù)可來自于。A)器B)時序電路F)I/O 接口C)寄存器D)立即數(shù)E)控制器38086 標志寄存器中控制為。A) CFB)IFC)DFD)SFE)TFF)OFG)ZF4若 AL=00H,BL=0FEH,執(zhí)行 ADDAL,BL 后,為 0 的標志位
52、有。A ) CFB ) PF F)OFH)DFC ) AFD ) SFE )TFG)ZFI)IF58086CPU 復位后,內(nèi)容為 0 的寄存器有。A ) IPB ) FLC ) CSD ) ESE )DS6當 CPU 讀F)SS器時,為 0 電平的引腳有。A ) ALEB ) M/C ) DEND ) DT/E )F)7)8086 與 8088 相比,具有。A)相同的同的指令隊列寄存器B)相同的指令系統(tǒng)C)相D)相同寬度的數(shù)據(jù)總線址方式四、填空題E)相同寬度的地址總線F)相同的尋1和集成在一塊上,被稱作 CPU??偩€按其功能可分、和三種不同類型的總線。器操作有和兩種。4CPU器進行讀寫操作時,
53、通常在狀態(tài)去檢測 READY ,一旦檢測到 READY 無效,就在其后一個周期。58086/8088CPU 中的指令隊列的長度分別為和字節(jié)。6當 8086CPU 的 MN / MX 引腳接電平,CPU 處于最大模式,這時對器和外設(shè)端口的讀寫控制信號由 五、簡答題18086/8088 CPU 中有幾個段寄存器?其功能是什么?發(fā)出。2邏輯地址、物理地址、物理地址是如何求得的?3何謂 8086/8088 CPU 最大模式和最小模式?其關(guān)鍵區(qū)別是什么?在最小模式時 CPU在最小模式時,CPU內(nèi)器,哪些信號有效?I/O 接口,哪些信號有效?第三章 80X86 的指令系統(tǒng)一、 判斷題1 MOV+(BP)A
54、X,BP的 源操作 數(shù) 物理地 址 為16d ( DS)()的2OUTDX,AL指令輸出是16(寄位操)器作數(shù)。3不能用立即數(shù)給段存賦值。 (4 位。 5字。)所有傳送指令都 不影響PSW寄(作存)器的 標志堆棧指令的操數(shù)均為(6 段值。)內(nèi) 轉(zhuǎn)移指令執(zhí) 行結(jié)果要改 變(IP)、 CS的7REPE/REPZ 是相等/為零時重復操作,其退出條件是:(CX)=0 或 ZF=0。二、單項選擇題1寄存器間接尋址方式中,操作數(shù)在中。()A)通用寄存器B)堆棧C)單元D)段寄存器2尋址方式的跨段前綴不可省略。A)DS:BPB)DS:SIC)DS:DID)SS:BPAX 后,=12HD)2000FH3假設(shè)(
55、SS)=2000H,(SP)=0012H,(AX)=1234H,執(zhí)行 PUSHA)20014B)20011HC)20010H4若要檢查 BX 寄存器中的 D12 位是否為 1,應(yīng)該用指令。A)ORBX,1000HB)TESTBX,1000HJNZ BX,1000HJNZJNZNOYESC) XORBX,1000HD)ANDJZYESYES5用 BP 作基址變址尋址時,操作數(shù)所在的段是當前。A)數(shù)據(jù)段B)代碼段C)堆棧段D)附加段6執(zhí)行下列指令后:MOV MOV ROL DEC MOV MULHLTAX,1234H CL,4 AX,CL AXCX,4CX(AX)=A)8D00HB)9260HC)
56、8CAOHD)0123H7)下列程序:NEXT:MOVAL,SIMOV INC INC LOOP可用指令來完成該功能。ES:DI,AL SIDINEXTA) REPMOVSBLODSBB) REPSTOSBC) REPESCASBD)REP8)設(shè)(AL)=-68,(BL)=86,執(zhí)行 SUBAL,BL 指令后,正確的結(jié)果是。A)CF=1三、多項選擇題B)SF=1C)OF=1D)ZF=11下列指令中源操作數(shù)使用寄存器尋址方式的有。A)MOVBX,BUFSIB)ADDSI+50,BXC)SUBAX,2D ) CMPCXAX , DISPDIE ) MULVARBXF )PUSH2將累加器 AX 的
57、內(nèi)容清零的正確指令是。A)CMPAX,AXAX,AXB)SUBAX,AXC)ANDAX,0D)XOR3正確將字變量 WORD VARR 偏移地址送寄存器 AX 的指令是。A ) MOVAX , WORD VARRB ) LESAX , WORDVARRC ) LEAAX , WORD VARRD ) MOVAX , OFFSETWORDVARR4調(diào)用 CALL 指令可有。A)段內(nèi)直接D)段間直接B)段內(nèi)間接E)段間間接C)短距離(SHORT)5將 AL 中帶符號數(shù)乘 10 送 AL,正確的程序是。A ) ADDAL , ALB ) ADDAL ,ALADDADDAL,ALALMOVBL,AL,
58、ALADDAL,ALADDAL,ALADDAL,ALADDC)MOVAL,ALCL,4ADDD)SALAL,BLAL,1MOV BL,ALSAL,AL,CLMOV SAL SALADDBL,AL AL,1 AL,1AL,BLADDADDAL,BLAL,BL6在下列指令中,隱含使用 AL 寄存器的指令有。A ) SCASBF)MULB ) XLATBHC ) MOVSBD ) DAAE )NOP四、填空題1假設(shè)(DS)=3000H,(BX)=0808H,(30808H)=012AAH,(3080A)=0BBCCH,當執(zhí)行指令“LESDI,BX”后,(DI)=,(ES)=。2假設(shè)(BX)= 044
59、9H,(BP)= 0200H,(SI)= 0046H,(SS)= 2F00H,(2F246H)= 7230H則執(zhí)行 XCHGBX,BP+SI指令后,(BX)=。3執(zhí)行下列指令序列后,完成的功能是將(DX,AX)的值。MOV DX,1 RCRLOOPCX,4NEXT: SHRAX,1NEXT4下列指令執(zhí)行后,BX=。MOV MOV ROLRORCL,3 BX,4DABH BX,1BX,CL五、閱讀程序并回答問題:START: INAL,20HMOV IN MOV MOVMOVBL,AL AL,30H CL,AL AX,0CH,ALL1:ADDAL,BLADCAH,0LOOPHLTL1問(1)本程
60、序?qū)崿F(xiàn)什么功能?(2)結(jié)果在哪里?(3)用乘法指令 MUL BL 編程并使結(jié)果不變。(假設(shè) 20H、30H 端口輸入的數(shù)據(jù)均為無符號數(shù))。六、編程題1編程檢測 50H 端口輸入的字節(jié)數(shù)據(jù),若為正,將 BL 清 0;若為負,將 BL 置為 FFH。2寄存器 DX 和 AX 的內(nèi)容程序段:32 位數(shù),DX 內(nèi)容為高 16 位,AX 內(nèi)容為低 16 位,編寫3將該 32 位數(shù)兩位,并將移出的保存在 CL 的低兩位中;將該 32 位數(shù)右移兩位,并將移出的低位保存在 BL 的低兩位中。數(shù)據(jù)段中以變址寄存器 SI 為偏移地址的內(nèi)存單元中連續(xù)存放著十個字節(jié)壓縮型 BCD碼,編程求它們的 BCD 和,要求結(jié)果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健康產(chǎn)業(yè)智能化醫(yī)療設(shè)備研發(fā)方案設(shè)計
- 《化學元素周期表制作技巧分享》
- 基于物聯(lián)網(wǎng)技術(shù)的農(nóng)產(chǎn)品供應(yīng)鏈管理優(yōu)化方案
- 農(nóng)業(yè)科技園區(qū)綜合開發(fā)項目合同
- 獨家代理銷售合作協(xié)議
- 數(shù)字信號處理算法及應(yīng)用試題庫
- 食物中能量的釋放課件-2024-2025學年北師大版生物七年級下冊
- 醫(yī)療器械技術(shù)創(chuàng)新合同
- 公司并購財務(wù)顧問協(xié)議
- 稅務(wù)籌劃咨詢服務(wù)協(xié)議
- 英語-山東省日照市2022級(2025屆)高三校際聯(lián)合考試(日照一模)試題和答案
- 機械設(shè)備供貨安裝及售后服務(wù)方案(通用)
- 社區(qū)矯正人員工作手冊
- 妊娠期糖尿病飲食指導
- 執(zhí)行難問題現(xiàn)狀成因及解決對策
- 光伏現(xiàn)代農(nóng)業(yè)大棚現(xiàn)狀與分析
- 1概論-3(建筑構(gòu)造)ppt課件
- 電纜敷設(shè)施工方案及安全措施范文
- 卡通手繪可愛小兔子PPT模板
- 軍事地形學地形圖基本知識
- 小兒體格檢查(課堂PPT)
評論
0/150
提交評論