版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 匯編部分習(xí)題參考答案1.5 下列各數(shù)均為十進制數(shù),請采用8位二進制補碼運算,并回答標(biāo)志寄存器FLAGS中CF和OF的值,運算結(jié)果所代表的十進制數(shù)是多少?如果用16位二進制補碼運算,其結(jié)果所代表的十進制數(shù)是多少?FLAGS中CF和OF的值呢?(1)85+69 (2)85+(-69) (3)85-(-69) (4)85-(69) 85=55H,69=45H,-69=BBH, 8位二進制補碼運算: (1)85+69 =55H+45H=9AH, CF=0,OF=1 (2)85+(-69)=55H+BBH=110H,CF=1,OF=0其余略1.6 實模式下,寫出段地址和偏移地址為1234:2002、1
2、430:0042、FF00:0FFF的物理地址。 1234:2002=12340+2002=14342 1430:0042=14300+0042=14342 FF00:0FFF=FF000+0FFF=FFFFF1.7 已知8086系統(tǒng)某存儲單元物理地址為:52506H,你認(rèn)為段基址的最大值、最小值分別是多少? 8086微機最多可以有多少個不同的段基址? 52506=5250:0006, 段基址的最大值=5250 52506=4251:FFF6, 段基址的最小值=42511.8 從物理地址為00100H開始到00103H單元中順序存放的數(shù)據(jù)為:12H,34H,56H,78H。請畫出數(shù)據(jù)存放示意圖
3、,并回答以下問題:(1) 寫出00101H字節(jié)單元的內(nèi)容(00101)= 34H(2) 寫出00102H字單元的內(nèi)容(00102)= 7856H習(xí)題33.1 分別說明8086處理器中各寄存器的名稱和作用是什么?3.2 溢出標(biāo)志OF與進位標(biāo)志CF有何作用和區(qū)別?3.3 何為段地址?何為有效地址? 何為物理地址?用指令舉例說明。3.4 帶符號數(shù)比較大小,當(dāng)AX < BX時程序轉(zhuǎn)向標(biāo)號L1,若前導(dǎo)指令為CMP AX, BX后續(xù)指令應(yīng)為什么?若視為二個無符號數(shù)比較大小, 后續(xù)指令應(yīng)為什么?帶符號數(shù):JL L1, 無符號數(shù):JB L13.5 ADD指令和ADC指令在什么情況下是一樣的結(jié)果? CF=
4、03.6 說出CALL指令和INT 21H指令的操作,有何異同? CALL把斷點壓入堆棧,不一定是遠調(diào),INT 21H還要把FLAGS壓入堆棧,且是遠調(diào),總?cè)肟诘刂窞?4H內(nèi)存中的兩個字。3.7 除了用4CH號系統(tǒng)功能調(diào)用結(jié)束程序的執(zhí)行并退出,還有哪些辦法?RET指令,INT 20H 3.8 指出下列錯誤的指令,說出錯誤原因,并給出合適的修改。 (1) MOV AX,DX / MOV AX,BX (2) MOV DS,DATA / MOV DS,BX (3) MOV CS,AX / MOV ES,AX(4) MOV AX,DL / MOV AL,DL(5) PUSH AL / PUSH AX(
5、6) ADD BX,DI / ADD BX,DI(7) LEA BX,2000H / LEA BX,2000H (8) MOV BX,OFFSET 2000H (9) MOV SI,2 / MOV BYTE PTR SI,2(10) MUL BX,CX / MUL BX(11) DIV 5 / DIV BX(12) MOV BYTESI,2 / MOV BYTE PTR SI,2(13) MOV AX,SI+DI / MOV AX,BX+SI(14) SHR AX,4 / SHR AX,1(15) CMP 6,AX / CMP AX,6(16) MOV FFFF,AX / MOV FFFE,A
6、X(17) MOV AX,BX+4 / MOV AX,BX+4(18) JMP FAR PRO / JMP FAR PTR PRO3.9 假定(DS)=1200H,(SS)=4400H, (BX)=463DH,(BP)=2006H, (SI)=6A00H,位移量D=4524H,以AX寄存器為目的操作數(shù),試寫出以下各種尋址方式下的傳送指令,并確定源操作數(shù)的有效地址EA和物理地址。 (1)立即尋址 ;操作數(shù)的EA就是指令的EA/操作數(shù)在指令中/無EA (2)直接尋址 ;EA=4524H,物理地址=DS:4524 (3)使用BX的寄存器尋址;無EA (4)使用BX的間接尋址 ;EA=463DH,物理
7、地址=DS:463D (5)使用BP的寄存器相對尋址 ;MOV AX,BP+4524,EA=2006+4524,物理地址=SS:EA (6)基址變址尋址 ;MOV AX,BX+SI,EA= BX+SI,物理地址=DS:EA (7)相對基址變址尋址;MOV AX,4524+BX+SI,EA=4524+BX+SI, 物理地址=DS:EA 3.10 用一條指令完成以下操作。(1)把BX寄存器和DX寄存器的內(nèi)容相加,結(jié)果存人DX寄存器中。ADD DX,BX(2)用寄存器BX和SI的基址變址尋址方式把存儲器中的一個字節(jié)與AL寄存器的內(nèi)容相加,并把結(jié)果送到AL寄存器中。ADD AL,BX+SI(3)用寄存
8、器BX和位移量0B2H的寄存器相對尋址方式把存儲器中的一個字和AX寄存器的內(nèi)容互換。XCHG AX,BX+0B2(4)用位移量為0524H的直接尋址方式把存儲器中的一個字與數(shù)2A59H相加,并把結(jié)果送回該存儲單元中。ADD WORD PTR 524, 2A59H3.11 在數(shù)據(jù)段定義了ARRAY數(shù)組,其中依次存儲了五個字?jǐn)?shù)據(jù),請用以下尋址方式的指令把第4個字送AX寄存器。(1)直接尋址 MOV AX,ARRAY+6 或MOV AX,ARRAY+6 (2)使用BX的間接尋址 LEA BX,ARRAY+6 ;MOV AX,BX (3)使用BX的寄存器相對尋址 LEA BX,ARRAY ;MOV A
9、X,BX+6(4)基址變址尋址 LEA BX,ARRAY ; MOV SI,6 ; MOV AX,BX+SI3.12 畫出數(shù)據(jù)在數(shù)據(jù)段中的存放情況,程序執(zhí)行后,BX、DI、CX、DX寄存器中的內(nèi)容是什么? 程序如下:data segmentarray dw 20,30,40,20h,30h,-6buff db abcd$data endscode segment assume cs:code,ds:datastart: mov ax, data mov ds, ax mov bx, array+1 mov di, offset array mov cx, di+5 mov dl, buff+3
10、 mov ah, 4ch int 21hcode ends end start 1E,00,00,00,20,00,00,64 3.13 在DEBUG下設(shè)置(SP)=20H,設(shè)置AX、BX、CX、DX為不同值,把這四個寄存器內(nèi)容依次壓入堆棧,再從堆棧中依次彈出到SI、DI、BP、BX寄存器。寫出一段程序?qū)崿F(xiàn)上述操作,并畫出每條入棧指令執(zhí)行后SP和堆棧中數(shù)據(jù)的變化。3.14 求出7450H與以下各十六進制數(shù)的和及差,并根據(jù)結(jié)果標(biāo)出SF、ZF、CF、OF標(biāo)志位的值。(1) 1234H (2)5678H (3)9804H (4)E0A0H SF、ZF、CF、OF(1)1234H+7450H, 1 0
11、 0 1(2)5678H+7450H, 1 0 0 1(3)9804H+7450H, 0 0 1 0(4)E0A0H+7450H, 0 0 1 03.15 在數(shù)據(jù)段有如下定義: DATAX DW ?,? DATAY DW ?,? SUM DW ?,?,?,? 請用16位指令按下列要求寫出指令序列: (1)DATAX和DATAY兩個字?jǐn)?shù)據(jù)相加,和存放在SUM中。 MOV AX,DATAX ADD AX,DATAY MOV SUM AX (2)DATAX和DATAY兩個雙字?jǐn)?shù)據(jù)相加,和存放在SUM開始的字單元中。 MOV AX,DATAX MOV DX,DATAX+2 ADD AX,DATAY A
12、DC DX,DATAY+2 MOV SUM,AX MOV SUM+2,DX(3)DATAX和DATAY兩個字?jǐn)?shù)據(jù)相乘(用MUL),積存放在SUM開始的字單元中。 (4)DATAX和DATAY兩個雙字?jǐn)?shù)據(jù)相乘(用MUL),積存放在SUM開始的字單元中。 (5)DATAX雙字除以字DATAY(用DIV),商和余數(shù)存放在SUM開始的字單元中。(6)DATAX和DATAY兩個壓縮BCD碼數(shù)據(jù)相加,和存放在SUM中。3.16 雙字長數(shù)X存放在DX和AX中,設(shè)(DX)=1004H,(AX)=1002H,要求用16位指令寫出:(1) 對存放在DX和AX中的雙字長數(shù)求補的指令序列,并驗證結(jié)果。NOT AXNO
13、T DXADD AX,1ADC DX,0 (2) 用減法指令求0-X的指令序列,并驗證結(jié)果。MOV BX,0 MOV CX,0SUB BX,AXSBB CX,DX ;結(jié)果在CX,BX3.17試編寫一個程序求出雙字長數(shù)的絕對值。雙字長數(shù)在A開始的字單元中,結(jié)果存放在B開始的字單元中。A DW ?,?B DW ?,?。MOV AX,AMOV DX,A+2TEST DX,8000HJZ ZSNOT AXNOT DXADD AX,1ADC DX,0ZS:MOV B,AXMOV B+2,DX3.18 用移位指令為主實現(xiàn)對AX中的無符號數(shù)乘以5,不考慮乘積可能超出16位。 MOV DX,AXMOV CL,
14、2 SHL AX,CL ADD AX,DX3.19 用移位指令為主實現(xiàn)對AX中的無符號數(shù)乘以5,考慮乘積可能超出16位的情況。提示:用DX接AX左移的位,32位操作。3.20 把AX中的內(nèi)容依次倒排序,即第0位移到第15位,第1位移到第14位,。3.21 在數(shù)據(jù)段有如下定義:BUFF DB ABCD$EFGHIJK$ STR1 DB 12 DUP(?) LEN DB ?用串指令編寫程序完成以下操作:(1) 對字符串STR1全部置空格符。MOV AX,DATAMOV DS,AXMOV AL,20HLEA DI,STR1MOV CX,STR1-BUFFCLDREP STOSB (2) 從左到右把B
15、UFF中的字符串傳送到STR1。MOV AX,DATAMOV DS,AXMOV ES,AXCLDLEA SI,BUFFLEA DI,STR1MOV CX,STR1-BUFFREP MOVSB(3) 從右到左把BUFF中的字符串傳送到STR1。MOV AX,DATAMOV DS,AXMOV ES,AXSTDLEA SI,STR1-1LEA DI,LEN-1MOV CX,STR1-BUFFREP MOVSB(4) 比較BUFF與STR1兩個字符串是否相等,如相等則DX=1,否則DX=0。MOV AX,DATAMOV DS,AXMOV ES,AXCLDLEA SI,BUFFLEA DI,STR1MO
16、V CX,STR1-BUFFREPE CMPSB(5) 查找BUFF中有無字符$,把字符$出現(xiàn)的次數(shù)計入BX寄存器。MOV AX,DATAMOV ES,AXMOV BX,0CLDMOV AL,$LEA SI,BUFFMOV CX,STR1-BUFFNEXT: REPNE SCASBJCXZ NO-FOUNDINC BXJMP NEXT3.22 對于給定的AX和BX的值,執(zhí)行下列程序段,程序?qū)⑥D(zhuǎn)向哪里?ADD AX, BX JNO L1JNC L2SUB AX,BXJNC L3JNO L4JMP L5(1) AX=1234H, BX=6789H(2) AX=9200H, BX=4000H(3)
17、AX=420EH, BX=8031H(4) AX=E002H, BX=8086HL1,L1,L1,L53.23 下面不完整的程序段是比較AX和BX的值,把其中大的數(shù)送MAX變量。如果是無符號數(shù),應(yīng)如何填寫指令?如果是有符號數(shù),應(yīng)如何填寫指令?CMP AX,BX( JB L1 ) 有符號數(shù):JL L1MOV MAX,AX( JMP L2 )L1:MOV MAX,BX L2:HLT 3.24 在下列程序段的括號中分別填入如下指令,程序執(zhí)行完后,AX、CX的內(nèi)容是什么?(1) LOOP(2) LOOPE(3) LOOPNZMOV AX, 8 MOV CX,5L1:SHL AX,CL( )提示:上機,
18、SHL指令使ZF=0,LOOPE指令不可能循環(huán)。3.25 測試AL寄存器,如果最高位和最低位同時為0,則轉(zhuǎn)L0,如果最高位和最低位只有一位為1,則轉(zhuǎn)L1,如果最高位和最低位同時為1,則轉(zhuǎn)L2。畫出流程圖,并編寫程序段。ROL AL,1AND AL,3JZ L0SUB AL,3JZ L3JMP L23.26 從鍵盤輸入一個英文字母,顯示輸出其大寫。畫出流程圖,并編寫程序段。 3.27 從鍵盤輸入一位數(shù)字N,顯示輸出N個N。畫出流程圖,并編寫程序段。CODE SEGMENTASSUME CS:CODESTART:MOV AH,1INT 21HMOV DL,ALAND AL, 0FHMOV CL,A
19、LMOV CH,0NEXT: MOV AH,2INT 21HLOOP NEXTMOV 4CHINT 21HCODE ENDS END START3.28 寄存器中為壓縮的BCD碼表示的十進制數(shù),寫出指令完成十進制加減計算,即計算AL+BL;AL-BL。并在DEBUG下上機驗證。(1) AL=65H,BL=37H (2) AL=98H,BL=69H3.29 寄存器中為非壓縮的BCD碼表示的十進制數(shù),寫出指令完成十進制加減計算,即計算AL+BL;AL-BL。并在DEBUG下上機驗證。(1) AX=235H,BL=37H (2) AL=238H,BL=39H3.30 用相對基址比例變址尋址方法求AR
20、RAY行列式的值。ARRAY DW 2,3,5 DW 1,4,6 DW 2,7,9習(xí)題44.1 假設(shè)VAR1為字節(jié)變量,VAR2為字變量,LAB為標(biāo)號,VAL為常量,指出下列有錯誤的指令,說出原因,并予糾正。(1) ADD AX,VAR1 / ADD AL,VAR1(2) MOV VAR2,VAR1 / MOV VAR2,AX(3) MOV VAR1,BYTE PTR VAR2 / MOV VAR1,AL(4) MOV VAR1,OFFSET VAR2 / MOV VAR2,OFFSET VAR1(5) MOV VAR2,OFFSET VAR1 (6) MOV VAR1,VAR2+VAR1 /
21、 MOV VAR2,VAR2-VAR1(7) MOV VAR1,VAR2-VAR1 / MOV VAR2,VAR2-VAR1(8) MOV VAR2,VAR2-VAR1(9) MOV BX,VAR2+VAL-4*5 (10) MOV BX,TYPE VAL (11) MOV BX,LAB(12) JMP VAR1 /JMP WORD PTR VAR1(13) JMP VAR2(14) JMP VAL /僅在DEBUG下可以(15) MOV BL, VAR1 AND VAL / VAR1 AND VAL須用指令實現(xiàn)(16) MOV BX, VAL AND 0FH(17) MOV BX, VAL
22、LT 0FH(18) MOV BL,LAB+VAR1 / MOV BL,VAR1 4.2 畫圖說明下列數(shù)據(jù)定義語句所示內(nèi)存空間的數(shù)據(jù),并回答寄存器的值。ORG 0ARRAY LABEL BYTEDA1 DW 2,9,14,3,315H,-6 DA2 DB 7,ABCDEDFGLEN = $DA2 ORG 100HDA3 DW DA4DA4 DB 4 DUP(2 DUP(1,2,3),4)MOV AL,ARRAY+2 (AL)=( )HADD AL,DA2+1 (AL)=( )HMOV AX,DA2-DA1 (AX)=( )HMOV BL,LEN (BL)=( )HMOV AX, DA3 (AX
23、)=( )HMOV BX, TYPE DA4 (BX)=( )HMOV BX, OFFSET DA4 (BX)=( )HMOV CX, SIZE DA4 (CX)=( )HMOV DX, LENGTH DA4 (DX)=( )HMOV BX, WORD PTR DA4 (BX)=( )HMOV BL, LEN AND 0FH (BL)=( )HMOV BL, LEN GT 5 (BL)=( )HMOV AX, LEN MOD 5 (AX)=( )H4.3 變量和標(biāo)號有哪些區(qū)別?變量和標(biāo)號有哪些屬性?如何獲取屬性值?寫出指令。變量是為指令提供的操作數(shù),標(biāo)號是為指令提供標(biāo)識,都是為了在指令中引用。
24、它們最主要的屬性有:偏移屬性,段屬性,類型屬性。例如:MOV BX, OFFSET VAL ;取偏移屬性MOV BX, SEG VAL ;取段屬性MOV BX, TYPE VAL ;取類型屬性4.4 指令和偽指令的區(qū)別在哪里?偽指令可以出現(xiàn)在代碼段嗎?指令可以在數(shù)據(jù)段嗎? 指令只能出現(xiàn)在代碼段,定義數(shù)據(jù)的偽指令通常在數(shù)據(jù)段。偽指令不會生成指令。 4.5 下面的程序是否有錯?能否通過匯編?程序運行的結(jié)果如何?程序的真正意圖是什么?應(yīng)如何修改程序才能實現(xiàn)真正意圖?答:通過匯編和連接可以運行,但程序真正意圖是輸出ASCII碼為30H39H的字符09,應(yīng)作修改。CODE SEGMENT ASSUME
25、CS:CODE K=30H ;改為 K DB 30H J DW 0START: MOV DL, K MOV AH, 2 INT 21H K=K+1 ;K=K+1是偽指令,沒生成代碼,改為 INC K INC J CMP J, 10 JNZ START MOV AH, 4CH INT 21HCODE ENDS END START 4.6 用32位指令編寫完整程序,并上機調(diào)試,計算V=(X+Y)*R,其中所有變量均為64位變量,X、Y、R的具體數(shù)值由你自己確定,變量定義格式如下: X DD ?,? Y DD ?,? R DD ?,? V DD ?,?data segmentx dd 1y dd 2
26、r dd 3v dd ?,?data endscode segmentassume cs:code,ds:data.386pstart: mov ax,data mov ds,ax mov eax,x add eax,y mov ebx,r imul ebx mov v,eax mov v+4,edx mov dl,al add dl,30h mov ah,2 int 21h mov ah,4ch int 21hcode endsend start習(xí)題55.1 下列程序是在3個數(shù)中找出最小的數(shù)并放入AL,在括號中填入指令使其完整。moval,xmovbl,ymovcl,zcmp al,bl(
27、jl l1 )xchg al,bll1: cmp al, cljle l2( xchg al,cl )l2: ret5.2 數(shù)據(jù)段如下:data segmentda1db1,2,abcd count = $-da1da2 db 9 dup(?)data ends補充括號處的指令,使得程序把DA1數(shù)據(jù)區(qū)數(shù)據(jù)移到DA2數(shù)據(jù)區(qū)。movax,datamov ds, axmoves,( AX )movcx,( COUNT )mov si, ( OFFSET DA1 ) ( MOV DI, OFFSET DA2 ) ( REP MOVSB )5.3 以下程序?qū)o符號數(shù)組ARRAY的6個元素從小到大排序,補
28、充括號處的指令。data segmentarraydw4,3,12,56,5,8 data endscode segmentassume cs:code,ds:datastart: ( mov ax,data ) ( mov ds, data )mov cx, 5l1: mov di, cxmov bx, 0l2: mov ax, arraybxcmp ax, arraybx+2( jl l3 )xchg ax, arraybx+2mov arraybx, axl3: add bx, 2( loop l2 )mov cx, diloop l1mov ah, 4chint 21hcode seg
29、mentend start5.4 編寫程序,實現(xiàn)從鍵盤輸入的小寫字母用大寫字母顯示出來。對輸入須合法性檢查。code segment assume cs:code start: push ds sub ax,ax push ax mov ah,1 int 21h cmp al,61h jb exit cmp al,7ah ja exitsub al,20hmov dl,almov ah,2int 21h exit:retcode endsend start5.5 編寫程序,比較兩個字符串是否相同,如果相同,則顯示兩個字符串,如果不同,則顯示發(fā)現(xiàn)不同的字符位置。datasg segment me
30、ss1 db 13,10, 'input string1:$'mess2 db 13,10, 'input string2:$'mess3 db 13,10, 'match!$'mess4 db 13,10, 'no match at $'st1 label byte max1 db 6 act1 db ? stok1 db 6 dup(?)st2 label byte max2 db 6 act2 db ? stok2 db 6 dup(?)datasg endscodesg segment assume cs:codesg,
31、ds:datasg,es:datasg main proc far push ds sub ax,ax push ax mov ax,datasg mov ds,ax mov es,ax lea dx,mess1 mov ah,09 int 21h ;qust1? lea dx,st1 mov ah,0ah int 21h ;ans1 lea dx,mess2 mov ah,09 int 21h ;qust2? lea dx,st2 mov ah,0ah int 21h ;ans2 mov cl,act1 mov dl,act2 cmp cl,dl jnz nomatch lea si,sto
32、k1 lea di,stok2 inc cl repe cmpsb cmp cl,0 jz matchnomatch: lea dx,mess4 jmp exitmatch: lea dx,mess3exit: mov ah,09 int 21h sub di,offset stok2 mov dx,di and dx,0fh add dl,30h mov ah,2 int 21h ret main endp codesg ends end main 5.6 編寫程序,從鍵盤輸入一個個位數(shù)N,響鈴N次(響鈴ASCII碼為07H)。code segment assume cs:code star
33、t: push ds sub ax,ax push ax mov ah,1 int 21h cmp al,31h jb exit cmp al,39h ja exitsub al,30hmov cl,almov ch,0k: mov ah,2mov dl,7int 21hloop k exit:retcode endsend start5.7 編寫程序,從鍵盤輸入一個字符串到BUFF,再輸入一個字符到AL,在字符串BUFF中查找是否存在該字符,如果找到,顯示發(fā)現(xiàn)的字符位置。;search datasg segment para'data'mess1 db 13,10, '
34、;input string:$'mess2 db 13,10, 'input a char:$'mess3 db 13,10, 'found at $'mess4 db 13,10, 'no found !$'st1 label byte max1 db 6 act1 db ? stok1 db 6 dup(?)datasg endscodesg segment para'code' assume cs:codesg, ds:datasg,es:datasg main proc far push ds sub ax,ax
35、push ax mov ax,datasg mov ds,ax mov es,ax lea dx,mess1 mov ah,09 int 21h ;qust1? lea dx,st1 mov ah,0ah int 21h ;ans1 lea dx,mess2 mov ah,09 int 21h ;qust2? mov ah,1 int 21h ;ans2 lea di,stok1 repne scasb jz matchnomatch: lea dx,mess4 jmp exitmatch: lea dx,mess3exit: mov ah,09 int 21h sub di,offset s
36、tok1 mov dx,di and dx,0fh add dl,30h mov ah,2 int 21h ret main endp codesg ends end main 5.8 編寫程序,從鍵盤輸入一個N位二進制數(shù),統(tǒng)計1出現(xiàn)的次數(shù)。code segment assume cs:code start: mov cx,9 ;N<10 mov dl,30H next: mov ah,1 int 21h cmp al,13 jz write cmp al,30h jb exit cmp al,31h ja exit sub al,30h add dl,al dec cx jnz nex
37、twrite: push dx mov dl,10 mov ah,2 int 21h pop dx mov ah,2 int 21hexit: mov ah,4ch int 21hcode ends end start5.9 編寫程序,從鍵盤輸入一個字符串到BUFF,并按相反順序顯示輸出。datasg segment mess1 db 13,10, 'input string:$'mess2 db 13,10,'$'st1 label byte max1 db 6 act1 db ? stok1 db 6 dup(?)datasg endscodesg segm
38、ent assume cs:codesg, ds:datasg main proc far push ds sub ax,ax push ax mov ax,datasg mov ds,ax lea dx,mess1 mov ah,09 int 21h lea dx,st1 mov ah,0ah int 21h lea dx,mess2 mov ah,09 int 21h mov cl,act1 mov ch,0 mov bx, offset stok1 add bx, cx next: dec bx mov dl, bx mov ah,2 int 21h loop next ret main
39、 endp codesg ends end main 5.10 編寫程序,從鍵盤輸入一個八位的二進制數(shù),顯示其十六進制數(shù)。code segment assume cs:codestart: mov cx,8 mov bl,0next: mov ah,1 int 21h cmp al,30h jb exit cmp al,31h ja exit sub al,30h shl bl,1 add bl,al loop next mov cl,4 mov di,2out1: rol bl,cl mov dl,bl and dl,0fh add dl,30h cmp dl,39h jle dig add
40、 dl,7dig: mov ah,2 int 21h dec di cmp di,0 jnz out1 exit: mov ah,4ch int 21hcode endsend start5.11 編寫程序,從鍵盤輸入某個字符的ASCII碼(作為起點)和個數(shù)N,顯示輸出這N個ASCII碼和字符。5.12 字?jǐn)?shù)組ARRAY為有符號數(shù),第一個單元為元素個數(shù)N,后面為N個元素,編寫程序,求數(shù)組元素中的最大值,并把它放入MAX單元。data segment array dw 5,9,4,5,15,3 max dw ?data endscode segment assume cs:code,ds:dat
41、astart: mov ax, data mov ds, ax mov cx, array lea bx, array+1 mov ax, bx mov max, axk1: mov ax, bx cmp ax, max jl next mov max,axnext: add bx,2 loop k1 mov ah,4ch int 21hcode endsend start5.13 字?jǐn)?shù)組ARRAY,第一個單元為元素個數(shù)N,后面為N個元素,編寫程序,把零元素從數(shù)組中清除,移動元素位置并修改第一個單元(元素個數(shù))。;delete the 0 from arraydata segment array dw 6,3,4,0,15,0,7 loca dw 999 ;此單元地址為結(jié)束標(biāo)記data endscode segment assume cs:code,ds:datastart: mov ax, data mov ds, ax mov cx, array lea bx, array+1next: cmp word ptrb
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 武漢校外合同范例
- 出售電腦分切機合同范例
- 天津濱海汽車工程職業(yè)學(xué)院《有機合成化學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 新型叉車采購合同范例
- 天府新區(qū)信息職業(yè)學(xué)院《體育-拓展訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 合作拿提成合同范例
- 用車勞動合同范例
- 分期訂購房車合同范例
- 書出版合同范例 單位
- 園區(qū)總承包施工合同范例
- 2024年陜西中陜核工業(yè)集團招聘筆試參考題庫含答案解析
- 新產(chǎn)品、新技術(shù)、新工藝、新材料的應(yīng)用
- 眼視光學(xué)專業(yè)大學(xué)生職業(yè)生涯規(guī)劃書
- 30題供應(yīng)鏈管理經(jīng)理崗位常見面試問題含HR問題考察點及參考回答
- 無人機路徑規(guī)劃與優(yōu)化
- 電磁彈射技術(shù)
- 酒駕后雙方賠償收據(jù)范本
- 讀后續(xù)寫微技能Toshownottotell課件高三英語一輪復(fù)習(xí)寫作專項
- 受性侵犯的女生的心理輔導(dǎo)方案
- 電氣設(shè)備維護保養(yǎng)記錄表
- (施工單位)投標(biāo)人承擔(dān)項目優(yōu)勢
評論
0/150
提交評論