版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.一、 實(shí)驗(yàn)?zāi)康?.熟練掌握call、ret的原理及應(yīng)用2.熟練掌握子程序的框架、進(jìn)行模塊化程序設(shè)計(jì)3.掌握參數(shù)與結(jié)果的傳遞、批量數(shù)據(jù)傳遞等問(wèn)題的解決方法二、 實(shí)驗(yàn)內(nèi)容及要求(一)綜合程序設(shè)計(jì):利用實(shí)驗(yàn)10中的三個(gè)子程序,將power idea公司的數(shù)據(jù)按照下圖所示的格式在屏幕上顯示出來(lái),要求計(jì)算人均收入并顯示出來(lái)。power idea公司的數(shù)據(jù)如下:assume cs:codesgdata segment db '1975','1976','1977','1978','1979','1980',&
2、#39;1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db '1993','1994','1995'年份 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 dd
3、 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000;公司總收入 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 dw 11542,14430,15257,17800;公司雇員人數(shù)data endstable segment db 21 dup('year summ ne ?') table ends要求:(1)給出該設(shè)計(jì)過(guò)程或算法(2)在代碼中必要的地方給出相應(yīng)注釋?zhuān)?)最終顯示結(jié)果。三、實(shí)驗(yàn)解答過(guò)程及
4、結(jié)果(1)該題目的第一段db型年份數(shù)據(jù)是以字符串儲(chǔ)存的,不適合后續(xù)的操作,所以先用ice子程序把年份數(shù)據(jù)轉(zhuǎn)化為word型數(shù)據(jù)。接下來(lái)循環(huán)開(kāi)始,先調(diào)用dtoc1子程序,把第一年(1975)的word型年份數(shù)據(jù)轉(zhuǎn)化為字符串儲(chǔ)存在es中,再調(diào)用show_str函數(shù)在屏幕緩沖區(qū)顯示出來(lái)。接著調(diào)用dtoc2子程序和show_str子程序把第一年的收入在同一行顯示出來(lái)。再接著調(diào)用dtoc1子程序和show_str子程序把第一年的雇員數(shù)在同一行顯示出來(lái),最后計(jì)算平均收入,同樣調(diào)用兩個(gè)子程序顯示出來(lái)。不停地循環(huán),循環(huán)21次,把所有的數(shù)據(jù)都顯示出來(lái),輸入程序結(jié)果,程序完結(jié)。(2)代碼及數(shù)據(jù)如下:assume c
5、s:codesgdata segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db
6、'1993','1994','1995'年份 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000;公司總收入 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 dw 11542,14430,15257,17800;公司雇員人數(shù)data en
7、dstable segment db 21 dup('year summ ne ? ') table endsstack segment db 1024 dup(0)stack ends codesg segmentstart:mov ax,data mov ds,ax mov ax,table mov es,ax mov ax,stack mov ss,ax mov sp,1024 mov si,0 mov bx,0 mov dh,5 mov ax,1975 ;初始化,dh為輸出時(shí)的行數(shù) mov cx,21 so:call ice push ax mov ax,ds:si c
8、all dtoc1 pop ax push cx mov dl,1 mov cl,00000111b call show_str pop cx ;這兩段輸出年份 push ax push dx mov ax,ds:si+84 mov dx,ds:si+86 call dtoc2 pop dx pop ax push cx mov dl,8 mov cl,00000111b call show_str pop cx ;這兩段輸出收入 push ax mov ax,ds:bx+168 call dtoc1 pop ax push cx mov dl,18 mov cl,00000111b call
9、 show_str pop cx ;這兩段輸出雇員數(shù) push ax push dx mov ax,si+84 mov dx,si+86 div word ptr ds:bx+168 ;計(jì)算人均收入,結(jié)果為16位,保存在ax中 call dtoc1 pop dx pop ax push cx mov dl,26 mov cl,00000111b call show_str pop cx ;這兩段輸出平均收入 add si,4 add bx,2 inc dh inc ax loop so ;循環(huán)21次,增加參數(shù) mov ax,4c00h int 21h;名稱(chēng):ice;功能:在ds:si開(kāi)始,以“
10、數(shù)據(jù)”“0”的格式用新數(shù)據(jù)替換舊數(shù)據(jù)(即年份字符串);參數(shù):(ax)=word型的數(shù)據(jù),es:si指向字符串的首地址;返回:無(wú);說(shuō)明:把字符串的年份轉(zhuǎn)化為word型數(shù)據(jù),并以0結(jié)尾,方便dtoc1函數(shù)的調(diào)用 ice:push bx mov ds:si,ax mov bx,0 mov ds:si+2,bx pop bx ret;名稱(chēng):dtoc1 ;功能:將一個(gè)word型數(shù)轉(zhuǎn)化為字符串,數(shù)應(yīng)不大于65535 ;參數(shù):(ax)=word型的數(shù)據(jù),es:si指向字符串的首地址 ;返回:es:si放此字符串,以0結(jié)尾;說(shuō)明:因?yàn)閐s放了數(shù)據(jù)段,為免混淆,把字符串放在es里,下面的函數(shù)也相同dtoc1:p
11、ush cx push bx push dx mov dx,0 push di push si mov di,0 cir1:mov cx,10 div cx add dx,30h mov bx,dx push bx inc di mov dx,0 mov cx,ax jcxz ow jmp short cir1 ow:mov cx,di s:pop bx mov es:si,bx inc si loop s pop si pop di pop dx pop bx pop cx ret ;名稱(chēng):dtoc2 ;功能:將一個(gè)dword型數(shù)轉(zhuǎn)化為字符串,數(shù)不應(yīng)大于FFFFFFFFFFFFFFFF ;參
12、數(shù):(ax)=dword型的數(shù)據(jù)的低16位,(dx)=dword型的數(shù)據(jù)的高16位,es:si指向字符串的首地址 ;返回:es:si放此字符串,以0結(jié)尾dtoc2:push cx push bx push si push di mov di,0 cir2:mov cx,10 call divdw add cx,30h mov bx,cx push bx inc di mov bx,dx add bx,ax mov cx,bx jcxz ox jmp short cir2 ox:mov cx,di s8:pop bx mov es:si,bx inc si loop s8 pop di pop
13、si pop bx pop cx ret ;名稱(chēng):divdw ;功能:除法,被除數(shù)32位,除數(shù)16位,商32位,余數(shù)16位,不會(huì)溢出 ;參數(shù):(dx)=被除數(shù)高16位,(ax)=被除數(shù)低16位,(cx)=除數(shù) ;返回:(dx)=商高16位,(ax)=商低16位,(cx)=余數(shù)divdw:push bx push ax mov ax,dx mov dx,0 div cx mov bx,ax pop ax div cx mov cx,dx mov dx,bx pop bx ret;名稱(chēng):show_str;功能:在指定的位置,用指定的顏色,顯示一個(gè)用0結(jié)束的字符串;參數(shù):(dh)=行號(hào)(125),(
14、dl)=列號(hào)(180),(cl)=顏色,es:si指向字符串的首地址;返回:無(wú)show_str:push di push si mov di,0 push ax push dx dec dh dec dl ;這里采用習(xí)慣上的叫法,放在顯示緩沖區(qū)最開(kāi)頭就是1行1列 mov al,160 ;1行80個(gè)字符,一個(gè)字符2個(gè)字節(jié) mul dh add dl,dl ;一個(gè)字符2個(gè)字節(jié) mov dh,0 add dx,ax add di,dx ;這幾行是為了計(jì)算字符串首的偏移地址 mov ah,cl ;字符的高位保存屬性,低位保存數(shù)據(jù) push cx change:mov cl,es:si mov ch,0 jcxz ok mov al,es:si push es push ax mov ax,0b800h ;顯示緩沖區(qū)的空間為B8000HBFFFFH mov es,ax pop ax mov es:di,ax ;輸出到緩沖區(qū) pop es inc si a
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專(zhuān)項(xiàng)消防設(shè)備增設(shè)協(xié)議樣本版A版
- 2025年度廠房裝飾裝修工程節(jié)能合同范本4篇
- 2025年度創(chuàng)新產(chǎn)業(yè)園廠房轉(zhuǎn)租服務(wù)合同標(biāo)準(zhǔn)4篇
- 做菜知識(shí)培訓(xùn)課件圖片
- 二零二五年度體育場(chǎng)館建設(shè)擔(dān)保協(xié)議3篇
- 2025年度高原地區(qū)柴油發(fā)電機(jī)組銷(xiāo)售及售后服務(wù)合同3篇
- 《社區(qū)調(diào)解實(shí)務(wù)講解》課件
- 2024年04月河南鄭州銀行信息科技部社會(huì)招考筆試歷年參考題庫(kù)附帶答案詳解
- 個(gè)人對(duì)公司長(zhǎng)期借款合同(2024年版)
- 專(zhuān)業(yè)美甲技術(shù)勞務(wù)合作協(xié)議樣本(2024版)版B版
- 2024年紀(jì)檢監(jiān)察綜合業(yè)務(wù)知識(shí)題庫(kù)含答案(研優(yōu)卷)
- 科室醫(yī)療質(zhì)量與安全管理小組工作制度
- 中華民族共同體概論課件第五講大一統(tǒng)與中華民族共同體初步形成(秦漢時(shí)期)
- 初二生地會(huì)考試卷及答案-文檔
- 私營(yíng)企業(yè)廉潔培訓(xùn)課件
- 施工單位值班人員安全交底和要求
- 中國(guó)保險(xiǎn)用戶需求趨勢(shì)洞察報(bào)告
- 數(shù)字化轉(zhuǎn)型指南 星展銀行如何成為“全球最佳銀行”
- 中餐烹飪技法大全
- 靈芝孢子油減毒作用課件
- 現(xiàn)場(chǎng)工藝紀(jì)律檢查表
評(píng)論
0/150
提交評(píng)論