




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一題:源程序:;從屏幕上輸入大寫(xiě)字母,轉(zhuǎn)換為小寫(xiě)字母并輸出(生成.com文件);要求:程序具有可讀性、容錯(cuò)性homework1 segment para assume cs:homework1,ss:homework1,ds:homework1org 0100hmain proc far lea dx, str1mov ah, 09hint 21h ;顯示輸入提示main0:mov ah, 01h ;輸入字符int 21hcmp al, 41h ;輸入判斷jb main1cmp al, 5ah ja main1lea dx, str4 ;顯示輸入成功提示 mov ah, 09h int 21
2、hadd al, 20h ;大寫(xiě)字母的ASCII->小寫(xiě)字母的ASCII push axlea dx, str2 ;顯示輸出提示mov ah, 09hint 21hpop axmov dl, al mov ah, 02h ;顯示小寫(xiě)字母int 21hmov ax, 4c00h ;退出OSint 21hmain1: ;錯(cuò)誤提示 lea dx, str3mov ah, 09h int 21h jmp main0 main endpstr1 db 0dh,0ah,'Please input a bigcase character:$'str2 db 0dh,0ah,'T
3、he converted result is:$'str3 db 0dh,0ah,'There is a input error, please input again!$'str4 db 0dh,0ah,'The character you have inputed is right!$'homework1 ends end main運(yùn)行結(jié)果:第二題:源程序:;編寫(xiě)一子程序asc2bin,將ASCII轉(zhuǎn)換為二進(jìn)制數(shù);要求:輸入?yún)?shù):AL中存放需要轉(zhuǎn)換的ASCII; 輸出參數(shù):AL中存放轉(zhuǎn)換后的二進(jìn)制數(shù)并返回data segment para var d
4、b 31h,39h,46hbuf db 3 dup (0)data endsss_seg segment stack db 100 dup (0)ss_seg endscode segment para assume cs:code,ss:ss_seg,ds:datamain proc far mov ax, data ;數(shù)據(jù)段賦值mov ds, axmov bx, 0mov al, varbxcall asc2binmov bufbx, alinc bxmov al, varbxcall asc2binmov bufbx, alinc bxmov al, varbxcall asc2binm
5、ov bufbx, almov ax, 4c00hint 21h ;編寫(xiě)一個(gè)把ASCII轉(zhuǎn)換為二進(jìn)制數(shù)的子程序;入口參數(shù):AL中存放需要轉(zhuǎn)換的ASCII ;出口參數(shù):AL中存放轉(zhuǎn)換后的二進(jìn)制數(shù)并返回asc2bin proc sub al, 30hcmp al, 09hjbe main1sub al, 07hmain1:retasc2bin endpmain endpcode ends end main運(yùn)行結(jié)果:第三題:源程序:;內(nèi)存中存放8個(gè)16位有符號(hào)數(shù),求8個(gè)數(shù)值之和,并將結(jié)果存放在內(nèi)存變量SUM中;注:程序中應(yīng)用到字?jǐn)U展為雙字的指令CWDdata segment para buf dw
6、12000,-14586,28965,-31596,14896,25478,32145,-26987sum dd 0data endsss_seg segment stack dw 100 dup(0)ss_seg endscode segment para assume cs:code,ss:ss_seg,ds:datamain proc farmov ax, data ;數(shù)據(jù)段賦值mov ds, axmov cx, 8 ;設(shè)置循環(huán)次數(shù)mov bx, 0circle:mov ax, bufbxcwd ;ax->dx,axadd word ptr sum, axadc word ptr
7、sum+2, dxadd bx, 2loop circlemov ax, 4c00hint 21hmain endpcode ends end main運(yùn)行結(jié)果:第四題:源程序:;內(nèi)存中存放8個(gè)8位有符號(hào)數(shù),請(qǐng)按從大到小順序排列data segment para buf db -128,127,-112,123,-109,112,0,64count equ ($-buf)data endsss_seg segment stack db 100 dup(0)ss_seg endscode segment para assume cs:code,ss:ss_seg,ds:datamain proc
8、 farmov ax, data ;對(duì)數(shù)據(jù)段賦值mov ds, axmov cx, count-1 ;定義最多的外循環(huán)次數(shù)circle2: ;外循環(huán)mov bx, 0mov dx, 0 ;設(shè)置標(biāo)志push cx ;保存外循環(huán)的CXcircle1: ;內(nèi)循環(huán)mov al, bufbxcmp al, bufbx+1jge main1xchg al, bufbx+1mov bufbx, almov dx, 1main1:add bx, 1loop circle1pop cxcmp dx, 0 ;判斷標(biāo)志,進(jìn)一步判斷是不是繼續(xù)執(zhí)行外循環(huán)jz exitloop circle2exit: ;退出OSmov
9、 ax, 4c00hint 21hmain endpcode ends end main運(yùn)行結(jié)果:第五題源程序:;內(nèi)存中有8個(gè)16位數(shù),請(qǐng)編寫(xiě)程序?qū)?個(gè)數(shù)倒序排放data segment para buf dw 14785,10596,9658,-21589,0,6365,-4852,5812data endsss_seg segment stack dw 100 dup(0)ss_seg endscode segment para assume cs:code,ss:ss_seg,ds:datamain proc farmov ax, data ;數(shù)據(jù)段賦值mov ds, ax mov cx
10、, 4 ;設(shè)定循環(huán)次數(shù)mov bx, 0main1:mov ax, bufbxmov si, 14sub si, bxxchg ax, bufsimov bufbx, axadd bx, 2loop main1mov ax, 4c00hint 21hmain endpcode ends end main運(yùn)行結(jié)果:第六題:源程序:;從鍵盤(pán)輸入4位十進(jìn)制數(shù),然后以16進(jìn)制形式顯示在屏幕上.;要求:鍵盤(pán)輸入和顯示結(jié)果時(shí)均應(yīng)有提示data segment para str1 db 0dh,0ah,'Please input a four decimal number:$'str2 db
11、 0dh,0ah,'The fexadecimal form of the number you have inputed is:$'data endsss_seg segment stack db 100 dup (0)ss_seg endscode segment para assume cs:code,ss:ss_seg,ds:datamain proc far mov ax, data ;數(shù)據(jù)段賦值 mov ds, ax lea dx, str1 mov ah, 9 int 21h ;顯示輸入提示 mov ah, 1 ;輸入千位 int 21h sub al, 30h
12、;得到千位數(shù) mov ah, 0 mov bx, 10 mov cx, 3 ;千位乘10的次數(shù) circle1: mul bx ;得到千位數(shù)*1000 loop circle1 push ax ;保存得到的千位數(shù)*1000 mov ah, 1 int 21h ;輸入百位 sub al, 30h ;得到百位數(shù) mov ah, 0 mov cx, 2 ;百位乘10的次數(shù) circle2: mul bx ;得到千位數(shù)*1000 loop circle2 mov dx, ax ;保存得到的百位數(shù)*100 pop ax ;千位數(shù)*1000出棧 add ax, dx ;千位數(shù)*1000+百位數(shù)*100-&
13、gt;ax push ax mov ah, 1 int 21h ;輸入十位數(shù) sub al, 30h ;得到十位數(shù) mov ah, 0 mul bx ;得到十位數(shù)*10 mov dx, ax pop ax ;千位數(shù)*1000+百位數(shù)*100出棧 add ax, dx ;得到千位數(shù)*1000+百位數(shù)*100+十位數(shù)*10 push ax ;千位數(shù)*1000+百位數(shù)*100+十位數(shù)*10->入棧 mov ah, 1 int 21h ;輸入個(gè)位數(shù) sub al, 30h ;得到個(gè)位數(shù) mov ah, 0 mov dx, ax pop ax add ax, dx ;得到千位數(shù)*1000+百位數(shù)*
14、100+十位數(shù)*10+個(gè)位? push ax lea dx, str2 mov ah, 9 int 21h ;顯示輸出提示 pop ax push ax mov al, ah mov cl, 4 shr al, cl ;得到AH的高四位 call convert ;得到AH的高四位所對(duì)應(yīng)的ASCII call putchar ;顯示AH的高四位所對(duì)應(yīng)的ASCII對(duì)應(yīng)的字符 pop ax push ax mov al, ah call convert ;得到AH的低四位所對(duì)應(yīng)的ASCII call putchar ;顯示AH的低四位所對(duì)應(yīng)的ASCII對(duì)應(yīng)的字符 pop ax push ax sh
15、r al, cl ;得到AL的高四位 call convert ;得到Al的高四位所對(duì)應(yīng)的ASCII call putchar ;顯示Al的高四位所對(duì)應(yīng)的ASCII對(duì)應(yīng)的字符 pop ax call convert ;得到Al的低四位所對(duì)應(yīng)的ASCII call putchar ;顯示Al檔低四位所對(duì)應(yīng)的ASCII對(duì)應(yīng)的字符 mov al, 48h call putchar ;輸出末尾的H mov ax, 4c00h int 21h ;退出OS ;定義一個(gè)四位二進(jìn)制數(shù)轉(zhuǎn)換為一位十六進(jìn)制數(shù)的子程序 ;入口參數(shù):一個(gè)四位二進(jìn)制數(shù) ;出口參數(shù):該四位二進(jìn)制數(shù)對(duì)應(yīng)的十六進(jìn)制數(shù)的ASCII conver
16、t proc and al, 0fh ;取低四位 add al, 30h cmp al, 39h jbe main1 add al, 07h main1: ret convert endp ;定義一個(gè)顯示AL中的ASCII所對(duì)應(yīng)字符的子程序 ;入口參數(shù):al ;出口參數(shù):顯示字符 putchar proc mov ah, 02h mov dl, al int 21h ;顯示字符 ret putchar endp main endpcode ends end main運(yùn)行結(jié)果:第七題:源程序:;數(shù)據(jù)段從100H開(kāi)始存放字符串str1;從200H開(kāi)始存放str2;二者均以NULL字符為結(jié)束符;編寫(xiě)
17、程序?qū)tr2拷貝到str1末尾,形成一個(gè)完整字符串data segment para org 100hstr1 db 0dh,0ah,'Hello ',0org 200hstr2 db 0dh,0ah,'Automation!',0data endsss_seg segment stack db 100 dup (0)ss_seg endscode segment para assume cs:code,ss:ss_seg,ds:datamain proc far mov ax, data ;數(shù)據(jù)段賦值mov ds, axpush dspop es ;es,d
18、s->datamov al, 0mov cx, 0ffffhlea di, str1repnz scasbdec di ;使es:di->str1中的結(jié)束符lea si, str2inc siinc si ;使ds:si->str2中的有效字符開(kāi)頭cld ;df<-0main2:cmp al, str2si ;判定是否到str2的結(jié)束jz main3movsbjmp main2 ;串傳送main3:mov str1di, 0 ;str1末尾加0lea si, str1 call getchar ;開(kāi)始取字符mov al, 0 call putchar ;顯示最后的0 m
19、ov ax, 4c00hint 21h ;退出OS;定義一個(gè)取字符的子程序;入口參數(shù):ds:si中的字符;出口參數(shù):字符的ASCII->algetchar proc cld main5:lodsbcmp al, 0jz main4call putcharjmp main5main4:retgetchar endp;定義一個(gè)顯示字符的子程序;入口參數(shù):al中的ASCII;出口參數(shù):顯示字符putchar proc mov dl, almov ah, 02hint 21hretputchar endpmain endp code ends end main運(yùn)行結(jié)果:第八題:源程序:;以10進(jìn)
20、制形式顯示內(nèi)存中一有符號(hào)字節(jié)數(shù)據(jù)data segment para var db 0e6hbuf db 3 dup (0)str1 db 0dh,0ah,'The converted result is:$'data endsss_seg segment stack db 100 dup (0)ss_seg endscode segment para assume cs:code,ss:ss_seg,ds:datamain proc far mov ax, data ;數(shù)據(jù)段賦值mov ds, axlea dx, str1mov ah, 9 ;顯示輸出結(jié)果提示int 21hmo
21、v cx, 3 ;設(shè)定除法的循環(huán)次數(shù)mov bx, 3mov al, varand ax, 0ffh ;ah清零push ax ;保存AX中的var數(shù)據(jù)cmp al, 0 ;判斷數(shù)據(jù)的正負(fù)jge main1mov dl, '-'mov ah, 2int 21hpop axneg al ;求負(fù)數(shù)的相反數(shù)main1: ;循環(huán)除法求余數(shù),既是個(gè)位,十位,百位mov dl, 10div dldec bxmov bufbx, ahand ax, 0ffh ;ah清零loop main1mov cx, 3 ;設(shè)定顯示字符的循環(huán)次數(shù)mov bx, 0circle: ;循環(huán)顯示轉(zhuǎn)換后的結(jié)果 add bufbx, 30hmov dl, bufbx mov ah, 2int 21hinc bxloop circleexit:mov ax, 4c00hint 21h ;退出OSmain endpcode ends end main運(yùn)行結(jié)果:第九題:源程序:;將一個(gè)16位的無(wú)符號(hào)數(shù)var, 轉(zhuǎn)換為非壓縮格式BCD碼,存放在內(nèi)存中buf開(kāi)始的單元中;(按高位在前、低位在后的順序存放)data segment para var dw 65535 buf db 5 dup (0)data endsss_
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘藝版四年級(jí)上冊(cè)音樂(lè)教案- 第五課(演唱) 踩雨
- 2025年印刷品、記錄媒介復(fù)制品項(xiàng)目合作計(jì)劃書(shū)
- 大數(shù)據(jù)技術(shù)助力提升教學(xué)質(zhì)量研究
- 教育技術(shù)在不同領(lǐng)域的應(yīng)用及前景分析
- 從教育心理學(xué)看學(xué)校教育與家庭教育的結(jié)合
- 教師專(zhuān)業(yè)成長(zhǎng)與教育法的緊密結(jié)合
- 心理資本開(kāi)發(fā)教育心理學(xué)在人力資源培訓(xùn)中的實(shí)踐
- 2025屆安徽省合肥市巢湖市匯文實(shí)驗(yàn)學(xué)校物理高二下期末質(zhì)量跟蹤監(jiān)視試題含解析
- 在線教育與遠(yuǎn)程教學(xué)下的教師能力提升
- 合同變更的處理流程題目
- 2022年全國(guó)《網(wǎng)絡(luò)安全學(xué)習(xí)教育知識(shí)》競(jìng)賽試題庫(kù)與答案
- DL 5190.2-2019 電力建設(shè)施工技術(shù)規(guī)范 第2部分:鍋爐機(jī)組
- 印刷與人工智能集成
- 藥房盤(pán)盈盤(pán)虧分析報(bào)告
- 老年病科醫(yī)生工作總結(jié)
- (正式版)JBT 14933-2024 機(jī)械式停車(chē)設(shè)備 檢驗(yàn)與試驗(yàn)規(guī)范
- JJF 1033-2023 計(jì)量標(biāo)準(zhǔn)考核規(guī)范
- sqe年終述職報(bào)告
- 保密協(xié)議Word模板
- 支部政務(wù)課:加強(qiáng)年輕干部教育管理監(jiān)督的幾點(diǎn)體會(huì)
- 社會(huì)調(diào)查報(bào)告-益陽(yáng)市交通狀況調(diào)查報(bào)告
評(píng)論
0/150
提交評(píng)論