



版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)用標(biāo)準(zhǔn)文案習(xí)題 4.3 將 AX 寄存器中的 16位數(shù)連續(xù) 4 位分成一組,共 4 組,然后把這4 組數(shù)分別放在 AL 、 BL 、 CL 和 DL 寄存器中。解答假設(shè) ax=1011010011111101思路:設(shè)這四組從低位到高位分別放在AL 、BL、 CL 和 DL 寄存器中。僅列出代碼段:mov bl, al;將 al 中的兩組分開and al, 0fh;屏蔽高四位后送 al:1101mov cl, 4;原 al 中的數(shù)據(jù)邏輯右移4 次送 blshr bl, cl; bl 內(nèi)容: 1111mov dl, ah;將 ah 中的兩組分開and dl, 0f0h;屏蔽低高四位后送 dlmo
2、v cl, 4;原 ah 中的數(shù)據(jù)邏輯右移4 次送 dlshr dl, cl; dl:1011mov cl, ah;屏蔽高四位后送 cl:0100and cl, 0fh習(xí)題 4.4 編寫一個(gè)程序,把從鍵盤輸入的一個(gè)小寫字母用大寫字母顯示出來(lái)。解答getkey:mov ah, 1;從鍵盤輸入,出口:al 存鍵值int 21hcmpal, 'a';判鍵值是小寫字母?jbgetkay精彩文檔實(shí)用標(biāo)準(zhǔn)文案cmpal, 'z'jagetkaysub al,20h;是小寫字母轉(zhuǎn)換為大寫字母mov dl,almov ah, 02h;顯示int 21h習(xí)題 4.5 已知用于LE
3、D 數(shù)碼管顯示的代碼表為:LEDtableDB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hDB 80h,90h,88h,83h,0c6h,0c1h,86h,8eh它依次表示0 9 、 A F這 16 個(gè)數(shù)碼的顯示代碼。現(xiàn)編寫一個(gè)程序?qū)崿F(xiàn)將lednum中的一個(gè)數(shù)字( 0 9 、 A F )轉(zhuǎn)換成對(duì)應(yīng)的LED 顯示代碼。解答.model small.stack 256.dataLEDtableDB 0c0h , 0f9h , 0a4h,0b0h,99h,92h, 82h , 0f8hDB 80h , 90h , 88h , 83h , 0c6h ,0clh 、 86h
4、,8ehlednumDB ?.code.startupmov bx, offset LEDtablemov al, lednum精彩文檔實(shí)用標(biāo)準(zhǔn)文案xlat;al 中存有對(duì)應(yīng)的LED 顯示代碼.exit 0end習(xí)題 4.10 設(shè)變量bufX為有符號(hào)16 位數(shù),請(qǐng)將它的符號(hào)狀態(tài)保存在signX ,即:如果X 大于等于0 ,保存 0;如果 X 小于 0,保存 -1 (ffh )。編寫該程序。解答.model small.stack.databufXdw -7signXdb ?.code.startupcmp bufX,0;test bufX,80hjl next;jnz nextmov sign
5、X,0jmp donenext:mov signX,-1done:.exit 0end習(xí)題 4.11 bufX 、 bufY 和 bufZ是 3 個(gè)有符號(hào)16 進(jìn)制數(shù),編寫一個(gè)比較相等關(guān)系的程精彩文檔實(shí)用標(biāo)準(zhǔn)文案序:(1 )如果這3個(gè)數(shù)都不相等,則顯示0;(2 )如果這3個(gè)數(shù)中有兩個(gè)數(shù)相等,則顯示1 ;( 3 )如果這 3 個(gè)數(shù)都相等,則顯示 2 。解答.model small.stack 256.databufxdw ?bufYdw ?bufzdw ?.code.startupmov ax,bufX;cmp x,y? 可以嗎?mov bx,bufYmov cx,bufZmov dl,
6、9;0'cmp ax,bxjnz next1inc dlnext1:cmp ax,cxjnz next2精彩文檔實(shí)用標(biāo)準(zhǔn)文案inc dlnext2:cmp bx,cxjnz next3inc dlnext3:cmp dl, 3jb next4mov dl, 2next4:mov ah,02h;顯示int 21h.exit 0end習(xí)題 4.16 編程實(shí)現(xiàn)把鍵入的一個(gè)字符,用二進(jìn)制形式(0 / 1 )顯示出它的ASCII 代碼值。解答.model small.stack 256.datastri1db 'please input',0dh,0ah,'$'.
7、code.startupmovdx,offset stri1精彩文檔實(shí)用標(biāo)準(zhǔn)文案mov ah,09hint 21hmov ah, 01hint 21hmov cx, 8again:xor dl,dlshl al, 1adc dl, '0':dl=dl+ 0 +cf: 如果 cf=0, 那么 dl=30h;如果 cf=1, 那么 dl=0+30h+1=31hmov ah,02hint 21hloop again.exit 0end習(xí)題 4.17 編寫程序,要求從鍵盤接收一個(gè)數(shù)bellN ( 0 9 ),然后響鈴bellN次。解答.model small.stack.datastr
8、i1db 'please input number:1-9',0dh,0ah,'$'.code精彩文檔實(shí)用標(biāo)準(zhǔn)文案.startupagain:mov dx,offset stri1;顯示 stri1 ,提示輸入mov ah,09hint 21hmov ah,01h;調(diào)用輸入一個(gè)字符int21h;輸入一個(gè)字符存在al 中cmp al, '1';判該字符,如不在 1 - 9 jbagain;重新輸入cmp al, '9'jaagainand al,0fh;將 31h 和 39h 轉(zhuǎn)換為 1 和 9在 1 - 9,屏蔽高4 位mov c
9、l, al;振鈴次數(shù)送 cxxor ch,chabc:mov dl, 07h;調(diào)用一次振鈴mov ah, 02hint 21hloop abc.exit 0end習(xí)題 4.19 編寫計(jì)算100 個(gè)正整數(shù)之和的程序。如果和不超過16 位字的范圍 ( 65535 ),精彩文檔實(shí)用標(biāo)準(zhǔn)文案則保存其和到wordsum,如超過則顯示overflow。解答.model small.stack.datanumequ 100wlistdw num dup(? )wordsumdw ?errordb 'overflow. $'.code.startupmov bx,offset wlistmov
10、 cx,numxor ax,axagain:add ax,bxjc nextinc bxinc bxloop againmov bx,axjmp donenext:mov dx,offset error精彩文檔實(shí)用標(biāo)準(zhǔn)文案mov ah,9int 21hdone:.exit 0end習(xí)題 4.22 過程定義的一般格式是怎樣的?子程序入口為什么常有PUSH 指令、出口為什么有 POP 指令?下面的程序段有什么不妥嗎?若有,請(qǐng)改正:crazyPROCpush axxor ax,axxor dx,dxagain:add ax,bxadc dx,0inc bxinc bxloop againretEND
11、P crazy解答crazyPROC; crazy PROCpush ax;push bx精彩文檔實(shí)用標(biāo)準(zhǔn)文案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 bxloop again;loop againret;retpop bxpop axENDP crazy; crazyENDP習(xí)題 4.23 子程序的參數(shù)傳遞有哪些方法,請(qǐng)簡(jiǎn)單比較。解答寄存器、共享變量(公共存儲(chǔ)單元)、堆棧用寄存器傳遞參數(shù)是把參數(shù)存于約定的寄存器中,
12、這種方法簡(jiǎn)單易行,經(jīng)常采用;用變量傳遞參數(shù)是主程序與被調(diào)用過程直接用同一個(gè)變量名訪問傳遞的參數(shù),就是利用變量傳遞參數(shù)。如果調(diào)用程序與被調(diào)用程序在同一個(gè)源程序文件中,只要設(shè)置好數(shù)據(jù)段寄存器DS ,則子程序與主程序訪問變量的形式相同,也就是它們共享數(shù)據(jù)段的變量,調(diào)用程序與被調(diào)用程序不在同一個(gè)源文件中,必須利用public/extern進(jìn)行聲明,才能用變量傳遞參數(shù),利用變量傳遞參數(shù),過程的通用性比較差,然而,在多個(gè)程序段間,尤其在不同程序的模塊間,利用全局變量共享數(shù)據(jù)也是一種常見的參數(shù)傳遞方法;精彩文檔實(shí)用標(biāo)準(zhǔn)文案用堆棧傳遞參數(shù)是主程序?qū)⒆映绦虻娜肟趨?shù)壓入堆棧,子程序從堆棧中取出參數(shù);子程序?qū)⒊隹?/p>
13、壓入堆棧,主程序彈出堆棧取得它們。習(xí)題 4.27 請(qǐng)按如下子程序說(shuō)明編寫過程:;子程序功能:把用ASCII 碼表示的兩位十進(jìn)制數(shù)轉(zhuǎn)換為對(duì)應(yīng)二進(jìn)制數(shù);入口參數(shù): DH= 十位數(shù)的ASCII 碼, DL= 個(gè)位數(shù)的 ASCII 碼;出口參數(shù): AL= 對(duì)應(yīng)的二進(jìn)制數(shù)解答astobprocand dh, 0fh;十位數(shù)的ASCII 碼轉(zhuǎn)為二進(jìn)制數(shù)mov al, dhmul 10;al= 10*dhand dl, 0fh;個(gè)位數(shù)的ASCII 碼轉(zhuǎn)為二進(jìn)制數(shù)add al, dl; al= 10*dh + dlretastobendp習(xí)題 4.28 寫一個(gè)子程序,根據(jù)入口參數(shù)AL=0/1/2,分別實(shí)現(xiàn)對(duì)大
14、寫字母轉(zhuǎn)換成小寫、小寫轉(zhuǎn)換成大寫或大小寫字母互換。欲轉(zhuǎn)換的字符串在string中,用 0 表示結(jié)束。解答ChangeprocPushbx;保護(hù) bxxorbx, bx;位移量清零精彩文檔實(shí)用標(biāo)準(zhǔn)文案cmp al,0;根據(jù)入口參數(shù)AL=0/1/2,分別處理jzchan_0dec aljzchan_1dec aljzchan_2jmp donechan_0:mov al,stringbx;實(shí)現(xiàn)對(duì)大寫字母轉(zhuǎn)換成小寫cmp al,0jz donecmp al, A ;是大寫字母jb next0cmp al, Z ;是大寫字母ja next0addal, 20h;轉(zhuǎn)換movstringbx, alnex
15、t0:incbx;位移量加1,指向下一字母jmpchan_0chan_1:mov al,stringbx;實(shí)現(xiàn)對(duì)小寫字母轉(zhuǎn)換成大寫cmp al,0jz donecmp al, a ;是大寫字母精彩文檔實(shí)用標(biāo)準(zhǔn)文案jb next1cmp al, z;是大寫字母ja next1subal, 20h;轉(zhuǎn)換movstringbx, alnext0:incbx;位移量加1,指向下一字母jmpchan_1chan_2:mov al,stringbx;實(shí)現(xiàn)對(duì)大寫字母轉(zhuǎn)換成小寫cmp al,0jz donecmp al, A ;是大寫字母jb next2cmp al, Z ;是大寫字母ja next20add
16、al, 20h;轉(zhuǎn)換jmp next2next20:cmp al, a ;是大寫字母jb next2cmp al, z;是大寫字母ja next2subal, 20h;轉(zhuǎn)換movstringbx, al精彩文檔實(shí)用標(biāo)準(zhǔn)文案next2:incbx;位移量加1,指向下一字母jmpchan_2done:pop bx;恢復(fù) bxretchangeendp習(xí)題 4.29 編制一個(gè)子程序把一個(gè)16 位二進(jìn)制數(shù)用十六進(jìn)制形式在屏幕上顯示出來(lái),分別運(yùn)用如下3 種參數(shù)傳遞方法,并用一個(gè)主程序驗(yàn)證它。( 1 )采用 AX 寄存器傳遞這個(gè) 16 位二進(jìn)制數(shù)( 2 )采用 wordTEMP 變量傳遞這個(gè) 16 位二進(jìn)
17、制數(shù)( 3 )采用堆棧方法傳遞這個(gè) 16 位二進(jìn)制數(shù)解答( 1 )采用 AX 寄存器傳遞這個(gè) 16 位二進(jìn)制數(shù).model small.stack.datawdatadw 34abh.code.startupmov ax,wdatacall dispa.exit 0精彩文檔實(shí)用標(biāo)準(zhǔn)文案;dispaprocpush cxpush dxmov cl,4mov dl,ahshr dl,clcall dldispmov dl,ahand dl,0fhcall dldispmov dl,alshr dl,clcall dldispmov dl,aland dl,0fhcall dldisppop dxp
18、op cxretdispaendp;精彩文檔實(shí)用標(biāo)準(zhǔn)文案dldispprocpush axor dl,30hcmp dl,39hjbe dldisp1add dl,7dldisp1:mov ah,2int 21hpop axretdldispendpend(2 )采用 wordTEMP變量傳遞這個(gè)16 位二進(jìn)制數(shù).model small.stack.datawdatadw 34abhwordtempdw ?.code.startupmov ax,wdatamov wordtemp,ax精彩文檔實(shí)用標(biāo)準(zhǔn)文案call dispa.exit 0;dispaprocpush cxpush dxmov cl,4mov dl,byte ptr wordtemp+1shr dl,clcall dldispmov dl,byte ptr wordtemp+1and dl,0fhcall dldispmov dl,byte ptr wordtempshr dl,clcall dldispmov dl,byte ptr wordte
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 殘疾人康復(fù)中心建設(shè)項(xiàng)目可行性研究報(bào)告
- 保險(xiǎn)公司裝修保修條款
- 天然氣項(xiàng)目可行性研究報(bào)告
- 農(nóng)副產(chǎn)品加工項(xiàng)目可行性研究報(bào)告
- 產(chǎn)品評(píng)測(cè)報(bào)告家電類別表格
- 三農(nóng)村電商數(shù)據(jù)分析報(bào)告
- 養(yǎng)老護(hù)理中級(jí)復(fù)習(xí)試題
- 外科總論復(fù)習(xí)試題及答案(一)
- 主管護(hù)師內(nèi)科護(hù)理練習(xí)試卷附答案
- 跨境電商營(yíng)銷作業(yè)指導(dǎo)書
- 設(shè)計(jì)變更單表格
- 良性前列腺增生診療指南
- 中學(xué)生食品安全教育 主題班會(huì)課件(18張PPT) 上學(xué)期
- 《長(zhǎng)方形和正方形》 完整版課件
- 《乘法交換律和結(jié)合律》教學(xué)課件數(shù)學(xué)四年級(jí)下冊(cè)
- 趣味數(shù)學(xué)-高斯求和 完整版課件
- 花卉生產(chǎn)設(shè)施課件
- 高中體育與健康人教版高中必修全一冊(cè)(新課標(biāo))第十章體操類運(yùn)動(dòng)-技巧模塊計(jì)劃
- 云南省主要礦產(chǎn)資源
- 臨床試驗(yàn)疑難問題解答
- 光伏發(fā)電工程施工組織設(shè)計(jì)施工工程光伏發(fā)電工程光伏發(fā)電施工組織設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論