![《匯編語言與接口技術(shù)》答案習(xí)題解答(第三章)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/c1586f06-106c-461e-8aa1-8b446c9e3459/c1586f06-106c-461e-8aa1-8b446c9e34591.gif)
![《匯編語言與接口技術(shù)》答案習(xí)題解答(第三章)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/c1586f06-106c-461e-8aa1-8b446c9e3459/c1586f06-106c-461e-8aa1-8b446c9e34592.gif)
![《匯編語言與接口技術(shù)》答案習(xí)題解答(第三章)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/c1586f06-106c-461e-8aa1-8b446c9e3459/c1586f06-106c-461e-8aa1-8b446c9e34593.gif)
![《匯編語言與接口技術(shù)》答案習(xí)題解答(第三章)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/c1586f06-106c-461e-8aa1-8b446c9e3459/c1586f06-106c-461e-8aa1-8b446c9e34594.gif)
![《匯編語言與接口技術(shù)》答案習(xí)題解答(第三章)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/c1586f06-106c-461e-8aa1-8b446c9e3459/c1586f06-106c-461e-8aa1-8b446c9e34595.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 3.16 解:mov ah,1 ;只允許輸入小寫字母 int 21hsub al,20h ;轉(zhuǎn)換為大寫字母 mov dl,almov ah,2int 21h ;顯示3.18 解:mov ax, bufXcmp ax, bufYjge donemov ax, bufYdone: mov bufZ, ax3.19 解:.model small.stack.databufX dw -7signX db ?.code.startupcmp bufX,0 ;test bufX,80h1jl next ;jnz nextmov signX,0jmp donenext: mov signX,-1done:
2、 .exit 0end3.20 解:mov dl, 2mov ax,bufXcmp ax,bufYje next1dec dlnext1: cmp ax,bufZje next2dec dlnext2: mov ah,2int 21h3.22 編制程序完成 12H 、 45H 、 0F3H 、 6AH 、 20H 、 0FEH 、 90H 、 0C8H 、 57H 和 34H 等 10個字節(jié)數(shù)據(jù)之和,并將結(jié)果存入字節(jié)變量 SUM 中(不考慮溢出和進位 。 ; wjxt322.asm.model small.stack.datab_data db 12h,45h,0f3h,6ah,20h,0fe
3、h,90h,0c8h,57h,34h ; 原始數(shù)據(jù) num equ 10 ;數(shù)據(jù)個數(shù)sum db ? ;預(yù)留結(jié)果單元.code.startupxor si, si ;位移量清零xor al, al ;取第一個數(shù)mov cx, num ;累加次數(shù)again: add al, b_datasi ;累加inc si ;指向下一個數(shù)loop again ;如未完,繼續(xù)累加mov sum, al ;完了,存結(jié)果.exit 0end3.30 解:lucase procpush bxmov bx,offset stringcmp al,0je case02cmp al,1jz case1cmp al,2jz
4、 case2jmp donecase0: cmp byte ptr bx,0 je donecmp byte ptr bx, A jb next0cmp byte ptr bx, Z ja next0add byte ptr bx,20h next0: inc bxjmp case0case1: cmp byte ptr bx,0 je donecmp byte ptr bx, a jb next1cmp byte ptr bx, z ja next1sub byte ptr bx,20h next1: inc bxjmp case1case2: cmp byte ptr bx,0 je do
5、necmp byte ptr bx, A jb next2cmp byte ptr bx, Z ja next20add byte ptr bx,20h jmp next2next20: cmp byte ptr bx, a jb next2cmp byte ptr bx, z ja next2sub byte ptr bx,20h next2: inc bxjmp case2done: pop bxretlucase endp3習(xí)題 3.1解答:參考教材(第 60頁習(xí)題 3.6問題:給出你采用一個源程序格式書寫的例題 3.1源程序解答:.model small.stack.datastrin
6、g db Hello, Assembly ! ,0dh,0ah, $.codestart: mov ax,datamov ds,axmov dx,offset stringmov ah,9int 21hmov ax,4c00hint 21hend start習(xí)題 3.12解答:ORG 偽指令習(xí)題 3.13解答:段地址和偏移地址屬性,類型屬性習(xí)題 3.26問題:過程定義的一般格式是怎樣的?子程序開始為什么常有 PUSH 指令、 返回前為什么 常有 POP 指令?下面完成 16位無符號數(shù)累加的子程序有什么不妥嗎?若有,請改 正:解答:crazy PROC ; crazy PROCpush ax ;
7、xor ax,ax ; xor ax,axxor dx,dx ; xor dx,dxagain: add ax,bx ; again: add ax,bxadc dx,0 ; adc dx,0inc bx ; inc bxinc bx ; inc bx4loop again ; loop againret ; retENDP crazy ; crazy ENDP字量求和子程序入口參數(shù):BX =數(shù)據(jù)首址CX =數(shù)據(jù)個數(shù)出口參數(shù):AX =和的低字DX =和的高字(進位部分習(xí)題 3.28問題:請按如下說明編寫子程序:; 子程序功能:把用 ASCII 碼表示的兩位十進制數(shù)轉(zhuǎn)換為對應(yīng)二進制數(shù) ; 入口參
8、數(shù):DH =十位數(shù)的 ASCII 碼, DL =個位數(shù)的 ASCII 碼 ; 出口參數(shù):AL =對應(yīng)的二進制數(shù)解答:asctob procpush cx;先轉(zhuǎn)換十位數(shù)and dh,0fhshl dh,1 ;乘以 10mov ch,dhshl dh,1shl dh,1add dh,ch;轉(zhuǎn)換個位數(shù)and dl,0fh;十位數(shù)加個位數(shù)add dh,dl;設(shè)置出口參數(shù)mov al,dhpop cxretasctob endp5習(xí)題 3.34-1問題:編寫一個計算字節(jié)校驗和的子程序。所謂 “ 校驗和 ” 是指不記進位的累加,常用于檢 查信息的正確性。主程序提供入口參數(shù),有數(shù)據(jù)個數(shù)和數(shù)據(jù)緩沖區(qū)的首地址。
9、子程 序回送求和結(jié)果這個出口參數(shù)。傳遞參數(shù)方法自定。解答:;數(shù)據(jù)段array db 12h,25h,0f0h,0a3h,3,68h,71h,0cah,0ffh,90hcount equ $-array ;數(shù)組元素個數(shù)result db ? ;校驗和;代碼段(主程序mov bx,offset array ; BX 數(shù)組的偏移地址mov cx,count ; CX 數(shù)組的元素個數(shù)call checksum;調(diào)用求和過程mov result,al ;處理出口參數(shù)習(xí)題 3.34-2;代碼段(子程序;計算字節(jié)校驗和的通用過程;入口參數(shù):DS:BX=數(shù)組的段地址 :偏移地址CX =元素個數(shù);出口參數(shù):AL
10、 =校驗和;說明:除 AX/BX/CX外,不影響其他寄存器checksum procxor al,al ;累加器清 0sum: add al,bx ;求和inc bx ;指向下一個字節(jié)loop sumretchecksum endp習(xí)題 3.17已知用于 LED 數(shù)碼管的顯示代碼表為:LEDtable db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb 80h,90h,88h,83h,0c6h,0c1h,86h,8eh它依次表示 09、 A F 這 16個數(shù)碼的顯示代碼。現(xiàn)編寫一個程序?qū)崿F(xiàn)將 lednum 中 的一個數(shù)字(09、 A F 轉(zhuǎn)換成對應(yīng)的 LED 顯
11、示代碼。解答; 數(shù)據(jù)段LEDtable db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb 80h,90h,88h,83h,0c6h,0clh,86h,8ehlednum db 0ah; 代碼段6mov bx, offset LEDtablemov al, lednumxlat ; al 中存有對應(yīng)的 LED 顯示代碼習(xí)題 3.21例題 3.7中, 如果要實現(xiàn)所有為 1的位都順序執(zhí)行相應(yīng)的處理程序段 (而不是例題中僅 執(zhí)行最低為 1位的處理程序段,請寫出修改后的代碼段。解答; 代碼段mov al,numbermov bx,0 ;BX記錄為 1的位數(shù)restart
12、: cmp al,0 ;AL=0結(jié)束jz doneagain: shr al,1 ; 最低位右移進入 CFjc next ; 為 1,轉(zhuǎn)移inc bx ; 不為 1,繼續(xù)jmp againnext: push axpush bxshl bx,1 ; 位數(shù)乘以 2(偏移地址要用 2個字節(jié)單元jmp addrsbx ; 間接轉(zhuǎn)移:IP table+BX; 以下是各個處理程序段fun0: mov dl,'0'jmp dispfun1: mov dl,'1'jmp dispfun2: mov dl,'2'jmp dispfun3: mov dl,'
13、;3'jmp dispfun4: mov dl,'4'jmp dispfun5: mov dl,'5'jmp dispfun6: mov dl,'6'jmp dispfun7: mov dl,'7'jmp dispdisp: mov ah,2 ;顯示一個字符int 21hpop bxpop axjmp restartdone: 7習(xí)題 3.24編寫計算 100個正整數(shù)之和的程序。如果和不超過 16位字的范圍(65535,則保存 其和到 wordsum ,如超過則顯示 Overflow !。解答;數(shù)據(jù)段count equ 1
14、00parray dw count dup(? ;假設(shè)有 100個數(shù)據(jù)wordsum dw 0msg db overflow , $;代碼段mov cx,countmov ax,0mov bx,offset parrayagain: add ax,bxjnc nextmov dx,offset msgmov ah,9int 21h ;顯示溢出信息jmp done ;然后,跳出循環(huán)體next: add bx,2loop againmov wordsum,axdone: 習(xí)題 3.25編程把一個 16位無符號二進制數(shù)轉(zhuǎn)換成為用 8421BCD 碼表示的 5位十進制數(shù)。轉(zhuǎn)換 算法可以是:用二進制數(shù)除
15、以 10000,商為“萬位”,再用余數(shù)除以 1000,得到“千位”; 依次用余數(shù)除以 100、 10和 1,得到“百位”、“十位”和“個位”。解答;wjxt325.asm.model small.stack 256.dataarray dw ? ;源字?jǐn)?shù)據(jù)dbcd db 5 dup(? ;五位 bcd 結(jié)果,高對高低對低.code.startupmov dx, array ;取源數(shù)據(jù)(余數(shù)mov bx, 10000 ;除數(shù)mov cx, 10 ;除數(shù)系數(shù)mov si, 4 ;目的數(shù)據(jù)高位位移量again: mov ax, dx ; dx.ax 中存放被除數(shù)mov dx, 0div bx ;除于
16、 bx ,商 ax ,余數(shù) dx8mov dbcdsi, al ;商<10,存結(jié)果push dx ;暫存余數(shù)mov ax, bx ;除數(shù)除于 10mov dx,0div cx ; dx.ax 除于 cx ,商 ax 、余數(shù) 0存在 dxmov bx, ax ; bx 是除數(shù)pop dxdec si ;目的數(shù)據(jù)位移量減 1jnz againmov dbcd, dl ;存?zhèn)€位數(shù)(< 10 .exit 0end習(xí)題 3.27編寫一個源程序,在鍵盤上按一個鍵,將從 AL 返回的 ASCII 碼值顯示出來,如果按 下 ESC 鍵則程序退出。請調(diào)用書中的 HTOASC 子程序。解答again:
17、 mov ah,1int 21hcmp al,1bh ; ESC 的 ASCII 碼是 1bhje donecall htoascmov ah,2int 21hjmp againdone:習(xí)題 3.29調(diào)用 HTOASC 子程序,編寫顯示一個字節(jié)的 16進制數(shù)、后跟“ H ”的子程序。 解答DIPASC proc ;入口參數(shù):AL =要顯示的一個 16進制數(shù)push cxpush dxpush axmov cl,4 ;轉(zhuǎn)換高位shr al,clcall HTOASCmov dl,al ; 顯示mov ah,2int 21hpop ax ;轉(zhuǎn)換低位call HTOASCmov dl,al ; 顯
18、示mov ah,2int 21hmov dl,H ;顯示一個字母“ H ”9mov ah,2int 21hpop dxpop cxretDIPASC endpHTOASC proc ; 將 AL 低 4位表達的一位 16進制數(shù)轉(zhuǎn)換為 ASCII 碼and al,0fhcmp al,9jbe htoasc1add al,37h ; 是 0AH 0FH ,加 37H 轉(zhuǎn)換為 ASCII 碼ret ; 子程序返回htoasc1: add al,30h ; 是 09,加 30H 轉(zhuǎn)換為 ASCII 碼ret ; 子程序返回HTOASC endp習(xí)題 3.35編制 3個子程序把一個 16位二進制數(shù)用 4
19、位 16進制形式在屏幕上顯示出來,分別運 用如下 3種參數(shù)傳遞方法,并配合 3個主程序驗證它。 采用 AX 寄存器傳遞這個 16位二進制數(shù) 采用 temp 變量傳遞這個 16位二進制數(shù) 采用堆棧方法傳遞這個 16位二進制數(shù)解答.model small.stack.datawdata dw 34abh.code.startupmov ax,wdatacall dispa.exit 0;dispa procpush cxpush dxmov cl,4mov dl,ahshr dl,clcall dldispmov dl,ahand dl,0fhcall dldisp10mov dl,al shr
20、dl,cl call dldisp mov dl,al and dl,0fh call dldisp pop dx pop cx ret dispa endp ; dldisp proc push ax or dl,30h cmp dl,39h jbe dldisp1 add dl,7 dldisp1: mov ah,2 int 21h pop ax ret dldisp endp end .model small .stack .data wdata dw 34abh wordtemp dw ? .code .startup mov ax,wdata mov wordtemp,ax call dispa .exit 0 ; dispa proc push cx push dx mov cl,4 mov dl,byte ptr wordtemp+1 shr dl,cl call dldisp mov dl,byte ptr wordtemp+1 11 and dl,0fh call dldisp mov dl,byte ptr wordtemp shr
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年復(fù)古皮質(zhì)書柜行業(yè)跨境出海戰(zhàn)略研究報告
- 2025-2030年復(fù)古旋轉(zhuǎn)木馬企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 2025-2030年即食蛋糕卷行業(yè)跨境出海戰(zhàn)略研究報告
- 2025-2030年復(fù)古風(fēng)格定制自行車服務(wù)行業(yè)跨境出海戰(zhàn)略研究報告
- 2025-2030年口腔健康飲食配送服務(wù)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 2025-2030年圖書館借還書機器人企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 2025-2030年發(fā)光塑膠彩虹燈串企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 壓力容器安全檢測技術(shù)的應(yīng)用與比較考核試卷
- 社會實踐打掃衛(wèi)生心得體會8篇
- 城鄉(xiāng)客運站運營管理能力提升與培訓(xùn)體系建設(shè)實踐與效果評估考核試卷
- 2025版大學(xué)食堂冷鏈?zhǔn)巢呐渌头?wù)合同模板3篇
- 《中醫(yī)體重管理臨床指南》
- 2022年武漢協(xié)和醫(yī)院醫(yī)護人員招聘考試筆試題庫及答案解析
- 2023屆江蘇省南京市聯(lián)合體市級名校中考聯(lián)考英語試題(含解析)
- 【完整版】防洪防汛應(yīng)急(含人員避險轉(zhuǎn)移)預(yù)案
- 工程勘察設(shè)計收費標(biāo)準(zhǔn)快速計算表(EXCEL)
- 甲基乙基酮2-丁酮MSDS危險化學(xué)品安全技術(shù)說明書
- 【大學(xué)】擠出管材(P64)ppt課件
- 大學(xué)物理課后習(xí)題答案北京郵電大學(xué)出版社
- 暗黑破壞神2所有綠色套裝(大圖)
- 火炬氣回收設(shè)施設(shè)計
評論
0/150
提交評論