




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、【精品文檔】如有侵權,請聯(lián)系網站刪除,僅供學習與交流匯編語言編程題目資料答案.精品文檔.5.1編寫程序,從鍵盤接收一個小寫字母,然后找出它的前導字符和后續(xù)字符,再按順序用大寫字母顯示這三個字符?!窘狻浚篗AIN PROC FARstart:push dssub ax,axpush axinput:mov ah,7Hint 21Hcmpe:cmp al,20HJE exitcmp al,61HJL inputcmp al,7AHJG inputprint:sub al,01Hmov dl,almov ah,02Hint 21Hadd al,01Hmov dl,almov ah,02Hint 21
2、Hadd al,01Hmov dl,almov ah,02Hint 21H;輸出換行回車mov dl,0AHmov ah,02Hint 21Hjmp inputexit :retMAIN ENDPEND start5.2 將AX寄存器中的16位數(shù)分成4組,每組4位,然后把這4組數(shù)分別放在AL、BL、CL和DL中?!窘狻浚篋B 4 dup(?) .stack 100H .code MAIN PROC FAR start: push ds and
3、ax,00H push ax mov ax,1234H mov cx,04H mov si,00H lop: push cx mov cl,04H rol ax,cl push ax and al,0FH mov BYTE PTR xsi,al pop ax pop cx add si,2 Loop
4、 lop mov al,X mov bl,X+2 mov cl,X+4 mov dl,X+6 print: mov ah,02H int 21H mov dl,al mov ah,02H int 21H mov dl,bl mov ah,02H int 21H mov dl,cl mov ah,02
5、H int 21H exit: ret MAIN ENDP END start5.3 試編寫一程序,要求比較兩個字符串STRING1和STRING2所含字符是否相同,若相同則顯示MATCH,若不相同則顯示NO MATCH。【解】:data segment string1 db "111111111",13,10,"$" string2 db
6、0; "222222222",13,10,"$" inf1 db "match!",13,10,"$" inf2 db "no match!",13,10,"$"data endscode segmentmain proc far
7、; assume ds:data,cs:code,es:codestart: push ds mov ax,0 push ax mov ax,data mov
8、0;ds,ax mov es,ax lea si,string1 lea di,string2 mov cx,9
9、 repz cmpsb jz match lea dx,inf2 jmp disp match:lea dx,inf1 disp :mov ah,09
10、0; int 21h retmain endpcode endsend start 5.4 試編寫一程序,要求能從鍵盤接收一個個位數(shù)N,然后響鈴N次(響鈴的ASCII碼為07H)?!窘狻浚簃ain proc far start: push ds sub
11、160;ax,ax push ax input: mov ah,01H int 21H cmp al,20H je exit cmp al,30H jle input cmp al,3AH jge input sub al,30H mov cx,ax and cx,0FFH lop: mov dl,07H m
12、ov ah,2H int 21H loop lop jmp input exit : ret main endp end start5.5 編寫程序,將一個包含有20個數(shù)據的數(shù)組M分成兩個數(shù)組:正數(shù)數(shù)組P和負數(shù)數(shù)組N,并分別把這兩個數(shù)組中數(shù)據的個數(shù)顯示出來?!窘狻浚?#160; DATA SEGMENT BUF DB -32, 25, 36, -
13、18, -64, 0, -3 COUNT EQU $ - BUF PLUS DB ? ; 存放正數(shù) MINUS DB ? ; 存放負數(shù) DATA ENDS CODE SEGMENT ASSUME
14、CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV BL, 0 ; 負數(shù)個數(shù) MOV DL, 0 ; 正數(shù)個數(shù) MOV SI, OFFSET BUF ; 首地址 MOV CX, CO
15、UNT ; 循環(huán)次數(shù) LOP1: MOV AL, SI ; 取第一個數(shù) CMP AL, 0 ; 和0比較 JGE NEXT0 ; 大于等于0, 轉 INC BL ; 小于0, BL加1
16、60; JMP NEXT1 ; 轉 NEXT1 NEXT0: INC DL ;大于等于0, DL加1 NEXT1: INC SI ; 指針增1 DEC CX ; 循環(huán)次數(shù)減1 JNZ LOP1 ; C
17、X不等于0, 轉回 MOV MINUS, BL ; 存儲負數(shù)個數(shù) MOV PLUS, DL ; 存儲正數(shù)個數(shù) CODE ENDS END START 5.6 試編寫一匯編語言程序,要求從鍵盤接收一個4位的十六進制數(shù),并在終端上顯示與它等值的二進制數(shù)?!窘狻浚?#1
18、60;stacks segment stack s db 20 dup(0) stacks ends data segment n equ 4 char db n+1 ;輸入內存字符db 0 db n+1 dup(0) input db 'Input the number:',0dh,0ah,'$' enter db 0dh,0ah,'$' output db 'Result is:',0dh,0ah,'$' dat
19、a ends code segment assume cs:code,ss:stacks,ds:data start: mov ax,data mov ds,ax lea dx,input mov ah,9 int 21h lea dx, char mov ah,0ah int 21h lea dx,enter mov ah,9 int 21h mov si,2 mov cx,4 l0: mov bl,charsi cmp b
20、l,30h jb start cmp bl,39h jbe l00 cmp bl,61h jb start cmp bl,66h ja start sub bl,57h jmp l333 l00: sub bl,30h l333:mov charsi,bl inc si dec cx jnz l0 lea dx,output mov ah,9 int 21h mov si,2 l000:mov bl,cha
21、rsi mov ch,4 mov cl,4 shl bl,cl ll00:test bl,80h jnz l1 mov dl,'0' mov ah,2 int 21h jmp l2 l1: mov dl,'1' mov ah,2 int 21h l2: shl bl,1 dec ch jnz ll00 inc si cmp si,6 jne l000 mov ah,4ch
22、160;int 21h code ends end start5.7 設有一段英文,其字符變量名為ENG,并以$字符結束。試編寫一程序,查對單詞SUN在該文中的出現(xiàn)次數(shù),并以格式“SUNXXXX”顯示出次數(shù)?!窘狻浚?#160;mov Z,0 lea esi,ENGlp1: lodsblp2:
23、160; cmp al,"$" jz toQuit cmp al,"S" jnz
24、; lp1 lodsb cmp al,"U" jnz lp2 lodsb
25、 cmp al,"N" jnz lp2 inc Z jmp &
26、#160; lp1toQuit:5.8 有一個首地址為MEM的100D字數(shù)組,試編制程序刪除數(shù)組中所有為零的項,并將后續(xù)項向前壓縮,最后將數(shù)組的剩余部分補上零?!窘狻浚簊tack 100H .data mem dw 12,0,0,0,0,0,1,2,3,6,4,7,8,2,1,0,0,54,5,0,2,4,7,8,0,5,6,2,1,4,8,5,1,45,7,5,1,2,0,2,4,0,2,54,0,12,0,0,0,0,0,1,2,3,6,4,7,8,2,1,0,0,54,5,0,2,4,7,8,
27、0,5,6,2,1,4,8,5,1,45,7,5,1,2,0,2,4,0,2,54,0,45,7,5,1,2,0,2,4,0,2 .code MAIN PROC FAR start: push ds and ax,0 push ax mov ax,data mov ds,ax - mov ax,0H mov bx,64H mov cx,64H mov si,
28、0FFFEH repeat: ADD si,2H cmp MEMsi,0H JE calls loop repeat calls: INC ax call sort cmp ax,1H JE lastValue DEC cx jmp repeat exit : ret lastValue: mov membx,0H
29、160;DEC cx jmp repeat MAIN ENDP sort PROC NEAR push cx push si sub si,2H s: add si,2H mov dx,memsi mov memsi+2,dx loop s return: pop si pop cx ret sor
30、t ENDP END start5.9 在STRING到STRING+99單元中存放著一個字符串,試編制一程序測試該字符串中是否存在數(shù)字。如有,則把CL的第5位置1,否則將該位置0?!窘狻浚?#160; XOR EBX,EBX MOV ES
31、I,OFFSET STRING MOV ECX,99START_LOOP: LODSB CMP AL,'0'
32、; JC LOOP_NEXT CMP AL,'9' JNC LOOP_NEXT OR BL,10HLOOP_NEXT:
33、; LOOP START_LOOP MOV CL,BL5.10 在首地址為TABLE的數(shù)組中按遞增次序存放著100H個16位補碼數(shù)。試編寫一個程序把出現(xiàn)次數(shù)最多的數(shù)及其出現(xiàn)次數(shù)分別存放于AX和CX中?!窘狻浚?#160; data segment Table dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,
34、5,6,7,8,9 dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9 dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9 dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9 dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9
35、160; dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9 dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9 dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9 dw 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9 dw 5,5,5,5,5
36、,5,5,5,5,5,5,5,5,5,5,5,5,5,-1,-1 Result dw 0,0,0,0 data ends code segment assume c
37、s:code,ds:data start: mov ax, data mov ds, ax ;- mov si, offset Table mov ax, si ; ax存放最大數(shù)
38、 mov bx, si ; bx存放最小數(shù) mov cx, 199 ; 循環(huán)199次 C001: inc si inc si mov dx, si cmp dx, ax
39、; jg C002 cmp dx, bx jl C003 jmp C004 C002: mov ax, dx jmp C004 C003: mov bx, dx C004:
40、60; loop C001 ; 保存結果 mov Result, ax mov Result+2, bx ;- mov si, offset Table mov cx, 200 &
41、#160; C005: mov ax, si xor dx, dx ;- push cx mov di, offset Table mov cx, 200 C006: mov
42、bx, di cmp ax, bx jnz C007 inc dx C007: inc di inc di loop C006 pop cx ;- cmp
43、 dx, Result+6 jle C008 mov Result+4, ax mov Result+6, dx C008: inc si inc si loop C005 ;-
44、0; mov ax,4c00h int 21h code
45、160; ends end start ; 最后結果 Result 9, -1, 5, 365.11 試編制一個程序,把AX中的十六進制數(shù)轉換為ASCII碼,并將對
46、應的ASCII碼依次存放到MEM數(shù)組中的4個字節(jié)中。例如,當(AX)2A49H時,程序執(zhí)行完后,MEM中的4個字節(jié)內容分別為39H,34H,41H和32H?!窘狻浚篸ata segment x db 'Y','$' y db 'N','$' data ends code segment assume cs:code,ds,data start:mov ax,data
47、60;mov ds,ax mov ah,01 int 21h cmp al,'a' ja abc abc: cmp al,'z' jb abc1 ret abc1:mov dl,offset x mov ah,9 int 21h
48、ret cmp al,'A' ja ab ab: cmp al,'Z' jb ab1 ret ab1: mov dl,offset x mov ah,9 int 21h ret cmp al,'z' ja
49、0;ac cmp al,'A' jb ac ac: mov dl,offset y mov ah,9 int 21h ret mov ah,4ch int 21h code ends end start5.12 已知數(shù)組A包含15個互不相等的整數(shù),數(shù)組B包
50、含20個互不相等的整數(shù)。試編制一程序,把既在A中又在B中出現(xiàn)的整數(shù)存放于數(shù)組C中?!窘狻浚篋ATA SEGMENTA DB 1,3,4,6,10,12,15,21,33,2,40,42,46,48,55B DB 2,3,6,21,33,41,55,88,8,66,21,10,22,23,56,48,50,51,89,100Z
51、160; DB 15 DUP (?)DATA ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODESTART: MOV AX,DATA
52、0; MOV DS,AX LEA SI,A LEA BX,Z MOV CX,15
53、0; CLDLOP1: LODSB PUSH CX(保存外環(huán)CX) MOV CX,20(內環(huán)次數(shù))
54、;LEA DI,B(每次內環(huán)完,重新賦值)LOP2: CMP AL,DI JE LOP3(相等,退出內環(huán)) INC DI &
55、#160; LOOP LOP2 JMP LOP4(內環(huán)完畢而沒有相等的就直接到外環(huán))LOP3: MOV BX,AL INC BXLOP4:
56、; POP CX(外環(huán)出棧) LOOP LOP1 MOV AH,4CH INT 21HCODE
57、60;ENDS END START5.13 從鍵盤輸入一系列字符(以回車符結束),并按字母、數(shù)字及其他字符分類計數(shù),最后顯示出這三類的計數(shù)結果。【解】:datarea segment count dw 0,0,0 ;分別存放字母、字
58、母和其他字符的個數(shù) datarea ends code segment main proc far assume cs:code,ds:datarea start:push ds
59、 sub ax,ax push ax mov ax,datarea mov dx,ax
60、60; next: mov ah,01 ;判斷是否為字母 int 21h cmp al,0dh
61、160; jz exit cmp al,5ah jg other
62、 cmp al,41h jl shuzi add count0,1 s
63、huzi:cmp al,39h ;判斷是否為數(shù)字 jg other cmp al,31h jl other add count1,1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 面向服務的軟件設計架構圖解與試題答案
- 機電工程2025年培訓與發(fā)展試題及答案
- 機電工程人員溝通試題及答案
- 安全法知識測試題及答案
- 培養(yǎng)創(chuàng)新能力的2025年軟件設計師試題及答案
- 西方政治基礎知識考察試題及答案
- 高效復習2025年網絡工程師經典試題及答案
- 建筑設備復習測試卷
- 核心知識點的軟件設計師復習策略試題及答案
- 英語四年級英試卷及答案
- 電工電子技術 課件 41.三極管的結構與分類 -50.放大電路中的反饋
- 高標準農田施工安全教育
- 自然療法研究與培訓中心行業(yè)深度調研及發(fā)展戰(zhàn)略咨詢報告
- 2025年砂石常規(guī)檢測試題及答案
- 機械設計制造及其自動化畢業(yè)論文-溫室用小型電動旋拼機設計
- 2025人教版七年級下冊生物期末學業(yè)質量檢測試卷(含答案)
- 教師職業(yè)道德與專業(yè)發(fā)展知到智慧樹章節(jié)測試課后答案2024年秋魯東大學
- 品質管理品質部管理制度
- 非標機械設備工廠項目績效獎激勵方案2023年
- 養(yǎng)老護理員職業(yè)道德及行為規(guī)范
- 貴州省遵義市(2024年-2025年小學六年級語文)部編版質量測試((上下)學期)試卷及答案
評論
0/150
提交評論