




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、匯編課程設(shè)計(jì)與學(xué)習(xí)總結(jié)系別專 業(yè)屆 別班 級(jí)學(xué)生姓名學(xué) 號(hào)指導(dǎo)教師職 稱二 O 一 六 年 六 月課程設(shè)計(jì)任務(wù)安排:Power idea公司從1975年成立一直到1995年的基本情況如下表所示,該數(shù)據(jù)已在程序中定義好(見(jiàn)圖1-1):表1-1:公司基本情況年份收入(千美元)雇員(人)人均收入(千美元)1975163?1976227?19773829?1978135613?1979239028?1980800038?1995593700017800?data segmentdb '1975','1976','1977','1978',
2、'1979','1980','1981','1982','1983'db '1984','1985','1986','1987','1988','1989','1990','1991','1992'db '1993','1994','1995'以上是21年的21個(gè)字符串dd 16,22,382,1356,2390,8000,1
3、6000,24486,50065,97479,140417,197514dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000;以上是表示21年公司總收入的21個(gè)dowrd型數(shù)據(jù)dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226dw 11542,14430,15257,17800;以上是表示21年公司雇員人數(shù)的21個(gè)word型數(shù)據(jù)data ends圖1-1:程序中數(shù)據(jù)定義計(jì)算data數(shù)據(jù)段中每一年的人均收入,并將所有數(shù)據(jù)按
4、照如圖1-2所示的格式在屏幕上顯示出來(lái)。圖1-2:效果圖第一部分:程序設(shè)計(jì)思路以及程序流程圖(這部分首先描述設(shè)計(jì)框架,然后畫出流程圖)程序主要從以下幾個(gè)方面來(lái)進(jìn)行設(shè)計(jì)1、 人均收入的計(jì)算人均收入等于收入除以雇員人數(shù)。設(shè)計(jì)中要注意的是要相對(duì)應(yīng)的收入除以相對(duì)應(yīng)的雇員人數(shù)。所以在設(shè)計(jì)中用了直接尋址和間接尋址的方式來(lái)控制。si來(lái)定位顯示緩沖區(qū)的數(shù)值放置位置和年份字符串的字符,bx定位收入字符串中的字符,di定位雇員字符串中的字符。2、 在屏幕中顯示結(jié)果向段地址為b800的地址空間寫入數(shù)據(jù),寫入的內(nèi)容將出現(xiàn)在顯示器上。一個(gè)字符在顯示緩沖區(qū)要占兩個(gè)字節(jié),低位字節(jié)存儲(chǔ)字符的ASCII碼,高位字節(jié)存儲(chǔ)字符的屬
5、性。本設(shè)計(jì)中將年份、收入、雇員以及計(jì)算出的人均收入的數(shù)值轉(zhuǎn)化為十進(jìn)制的字符串,每個(gè)字符的ASCII碼放入顯示緩存區(qū)的低位;高位存放顏色屬性,本次設(shè)計(jì)為黑底白字,故設(shè)置為00000111B,即07h。本程序共用了幾個(gè)子程序,子程序之間相互調(diào)用,盡可能地將程序優(yōu)化。:1、 s:主要作用是在指定位置將年份、收入、雇員以及計(jì)算出的人均收入的數(shù)值放入顯示緩沖區(qū)中,以指定的顏色進(jìn)行顯示。在過(guò)程中調(diào)用其他子程序,循環(huán)21次,將每個(gè)數(shù)據(jù)都放入緩存區(qū)中。2、 changeToStr:主要是將字型數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制形式的字符串,以便屏幕中顯示的是我們能夠讀懂的信息。轉(zhuǎn)換方法是用數(shù)據(jù)除以10,循環(huán)多次,每次得到的余數(shù)
6、都加上30H,便得到表示十進(jìn)制的ASCII碼串。3、 s1:判斷數(shù)據(jù)的每一位都轉(zhuǎn)化成十進(jìn)制的ASCII碼,只要除到商為0,就能確定每一位都轉(zhuǎn)化了。所以在程序中循環(huán)多次,用jnz指令實(shí)現(xiàn)相關(guān)功能,直至數(shù)據(jù)各位的值都求出。4、 s2:將得到的十進(jìn)制ASCII碼串一位位地放入緩沖區(qū)中,用jnz指令判斷,直至數(shù)值都放入顯示緩沖區(qū)后,返回上一級(jí)程序。5、 divdw:進(jìn)行不會(huì)溢出的除法運(yùn)算。在對(duì)字型數(shù)據(jù)的轉(zhuǎn)換過(guò)程中,實(shí)現(xiàn)對(duì)10的不斷取余。同時(shí)在計(jì)算人均收入時(shí),完成收入除以雇員人數(shù)的計(jì)算。開(kāi)始將基本數(shù)據(jù)放入寄存器dx,將es的段地址賦值為0b800h ,即為顯示緩沖區(qū)將年份放入es中,顏色設(shè)置為黑底白字定
7、位到收入字段將收入的值轉(zhuǎn)化為十進(jìn)制的ASCII碼,放入es中,顏色設(shè)置為黑底白字定位到年份字段,顯示緩沖區(qū)換至下一行。定位到雇傭人數(shù)字段bx加上84,收入將雇員人數(shù)的值轉(zhuǎn)化為十進(jìn)制的ASCII碼,放入es中,顏色設(shè)置為黑底白字收入除以雇員人數(shù),得到人均收入將人均收入的值轉(zhuǎn)化為十進(jìn)制的ASCII碼,放入es中,顏色設(shè)置為黑底白字N是否循環(huán)了21次?Y結(jié)束第二部分:程序代碼(寫出完整程序代碼)(格式要求:Arial Narrow,五號(hào))assume cs : codesg, ds : datasg, ss : stacksgdatasg SEGMENT db '1975','
8、;1976','1977','1978','1979','1980','1981','1982','1983'db '1984','1985','1986','1987','1988','1989','1990','1991','1992'db '1993','1994','1995'以
9、上是21年的21個(gè)字符串dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000;以上是表示21年公司總收入的21個(gè)dowrd型數(shù)據(jù)dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226dw 11542,14430,15257,17800;以上是表示21年公司雇員人數(shù)的21個(gè)word型數(shù)據(jù)datasg
10、 ENDSstacksg SEGMENT dw 16 dup (0)stacksg ENDScodesg SEGMENTstart: mov ax, datasg mov ds, ax mov ax, 0b800h mov es, ax;es的段地址設(shè)置為b800h,作為顯示緩沖區(qū) mov ax, stacksg mov ss, ax mov sp, 32mov cx, 21 mov si, 0mov bx, 0 mov di, 0s: mov al, bx;將年份的數(shù)據(jù)放入es中 mov es : si, al mov byte ptr es : si + 1, 07h;07為黑底白字 mo
11、v al, bx + 1 mov es : si + 2, al mov byte ptr es : si + 3, 07h mov al, bx + 2 mov es : si + 4, al mov byte ptr es : si + 5, 07h mov al, bx + 3 mov es : si + 6, al mov byte ptr es : si + 7, 07h mov ax, bx + 84;定位到收入字段 mov dx, bx + 86 add si, 20 call changeToStr;調(diào)用changeToStr,將數(shù)據(jù)轉(zhuǎn)化為字型數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制形式的字符串,并放
12、入es中 mov ax, di + 168;定位到雇員字段 mov dx, 0 add si, 20 call changeToStrmov dx, bx + 86 mov ax, bx + 84 push cx mov cx, di + 168 add si, 20 call divdw;得到人均收入 push ax mov ax, dx call changeToStr pop ax call changeToStr sub si, 60 pop cx add bx, 4 add di, 2 add si, 160 loop schangeToStr:push si push cx mov
13、 bp, sp s0: mov cx, 10 call divdw add cl, '0' mov ch, 07h push cx cmp ax, 0;執(zhí)行ax-0,不保存結(jié)果,只影響標(biāo)志位;如果ax不為0,jnz條件成立 jnz s0 s1: pop ax mov es : si, ax jnz s1 pop cx pop si retdivdw: push bp push ax mov ax, dx mov dx,0 div cx mov bp, ax pop ax div cx mov cx, dx mov dx, bp pop bp ret mov ax, 4c00h
14、int 21hcodesg ENDSEND start add si, 2 cmp sp, bp;執(zhí)行sp-bp,如果結(jié)果不為0,jnz條件成立 jnz s1 pop cx pop si retdivdw: push bp push ax mov ax, dx mov dx,0 div cx mov bp, ax pop ax div cx mov cx, dx mov dx, bp pop bp ret mov ax, 4c00h int 21hcodesg ENDSEND start匯編程序語(yǔ)言學(xué)習(xí)總結(jié)(這部分要求:根據(jù)這學(xué)期學(xué)習(xí)的課程以及大學(xué)期間學(xué)習(xí)的幾種編程語(yǔ)言、單片機(jī)以及ARM,通過(guò)
15、分析比較對(duì)匯編語(yǔ)言進(jìn)行總結(jié),描述清楚該語(yǔ)言的作用,特點(diǎn),與其他語(yǔ)言的區(qū)別以及將來(lái)的主要作用范圍。內(nèi)容可以結(jié)合文字,圖表,不少于兩頁(yè)。)(格式要求:宋體,小四,行間距為20磅。圖表的標(biāo)題為宋體五號(hào))在上學(xué)期我們專業(yè)開(kāi)設(shè)了單片機(jī)課程,在學(xué)習(xí)單片機(jī)的過(guò)程中,我們就接觸到了匯編語(yǔ)言,但那時(shí)候沒(méi)有系統(tǒng)的學(xué)習(xí),只知道像mov、jump、inc這樣一些常用的簡(jiǎn)單指令。而在最后單片機(jī)的課程設(shè)計(jì)中,我們采用的是c語(yǔ)言來(lái)編程。那時(shí)候認(rèn)為匯編語(yǔ)言并沒(méi)有什么大的作用,匯編語(yǔ)言能做的,c語(yǔ)言也都能做,而且更為簡(jiǎn)單。但真正接觸這門課后,才發(fā)現(xiàn)匯編語(yǔ)言有它自己獨(dú)特的作用,而且也不是很容易就可以弄懂的。相比較其他高級(jí)語(yǔ)言如C
16、+、java等,電腦等于在遷就人的思維方式。但學(xué)匯編,人卻必須要去遷就電腦的思維方式。要設(shè)身處地地用電腦的角度去思考問(wèn)題,這就是我們學(xué)習(xí)匯編語(yǔ)言時(shí)遇到的最大的障礙。通過(guò)這一學(xué)期的學(xué)習(xí),我對(duì)匯編只是有了初步的掌握。現(xiàn)在我來(lái)通過(guò)比較匯編語(yǔ)言和幾種高級(jí)語(yǔ)言的區(qū)別來(lái)對(duì)匯編語(yǔ)言作一個(gè)小小的總結(jié)。在我們學(xué)過(guò)的高級(jí)語(yǔ)言,Java和C+都是面向?qū)ο笳Z(yǔ)言,它們都能夠?qū)崿F(xiàn)面向?qū)ο笏枷耄ǚ庋b、繼承、多態(tài))。C+是在C語(yǔ)言基礎(chǔ)上進(jìn)行擴(kuò)展而來(lái)的一門面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。相比其他語(yǔ)言,它具有很多優(yōu)點(diǎn)和特點(diǎn)的,它對(duì)面向?qū)ο蟮闹С?,讓我們可以將一個(gè)功能模塊封裝成一個(gè)類,對(duì)于使用這個(gè)功能模塊的人,只需調(diào)用這個(gè)類的方法就可以了
17、,不必關(guān)心功能如何實(shí)現(xiàn)的,這一點(diǎn)可以在開(kāi)發(fā)大型項(xiàng)目的時(shí)候提高開(kāi)發(fā)效率,減少開(kāi)發(fā)周期。同時(shí),可以通過(guò)對(duì)類進(jìn)行派生來(lái)擴(kuò)展模塊的功能,而不影響原有的功能。C+的異常處理機(jī)制可以很好地對(duì)代碼的異常進(jìn)行捕捉,保證了在程序運(yùn)行時(shí)出現(xiàn)錯(cuò)誤不至于整個(gè)崩潰掉,也為我們對(duì)于運(yùn)行時(shí)錯(cuò)誤的處理提供了一種有效的途徑。C+程序的依賴性小,對(duì)C+代碼進(jìn)行靜態(tài)連接,就能保證生成的可執(zhí)行程序在別的電腦上直接運(yùn)行。Java語(yǔ)言是一種新的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它除了幾種基本的數(shù)據(jù)類型外,大都是類似c+中的對(duì)象和方法,程序代碼大多體現(xiàn)了類機(jī)制,以類的形式組織,由類來(lái)定義對(duì)象的各種行為。Java語(yǔ)言與C+類似,如果用戶了解C+和面向
18、對(duì)象的概念,就可以很快編寫出Java程序;此外,Java又不同于諸如C+語(yǔ)言提供的各種各樣的方法,它只提供了基本的方法,這樣就減少了編程的復(fù)雜性。Java語(yǔ)言雖然簡(jiǎn)單,但很高效,它可以用面向?qū)ο蟮姆椒▉?lái)描述用戶的每一個(gè)動(dòng)作。Java同樣支持類繼承,這樣也減少了程序設(shè)計(jì)的復(fù)雜性。Java程序可以在任何平臺(tái)上運(yùn)行,如MS-DOS, Windows,Unix等,因此具有很強(qiáng)的移植性。由于它支持TCPIP協(xié)議,使得用戶可以通過(guò)瀏覽器訪問(wèn)到Internet上的各種動(dòng)態(tài)對(duì)象。并且在網(wǎng)絡(luò)上用戶可以交互式地進(jìn)行各種動(dòng)作,而多線程技術(shù)的引入使得這種交互式操作更為容易。而匯編語(yǔ)言是面向機(jī)器的程序設(shè)計(jì)語(yǔ)言。在匯編語(yǔ)
19、言中,用助記符代替操作碼,用地址符號(hào)或標(biāo)號(hào)代替地址碼。這樣用符號(hào)代替機(jī)器語(yǔ)言的二進(jìn)制碼,就把機(jī)器語(yǔ)言變成了匯編語(yǔ)言。所以匯編語(yǔ)言亦稱為符號(hào)語(yǔ)言。使用匯編語(yǔ)言編寫的程序,機(jī)器不能直接識(shí)別,要由一種程序?qū)R編語(yǔ)言翻譯成機(jī)器語(yǔ)言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統(tǒng)軟件中語(yǔ)言處理系統(tǒng)軟件。匯編程序把匯編語(yǔ)言翻譯成機(jī)器語(yǔ)言的過(guò)程稱為匯編。匯編語(yǔ)言針對(duì)不同的操作系統(tǒng)平臺(tái),不同的微控制器,指令都是完全不同的,即使指令相似,也不具有可移植性。但是匯編語(yǔ)言是針對(duì)專門的控制器的,所以運(yùn)行速度可以精確到一個(gè)指令周期。匯編語(yǔ)言的程序讀懂需要借助微控制器的指令手冊(cè)以及各個(gè)寄存器的說(shuō)明,所以很難讀懂。匯編語(yǔ)言
20、編寫代碼實(shí)時(shí)性強(qiáng),能夠直接控制硬件的工作狀態(tài),但是不具有可移植性,維護(hù)和修改困難。匯編語(yǔ)言有這樣幾個(gè)特點(diǎn):1機(jī)器相關(guān)性這是一種面向機(jī)器的低級(jí)語(yǔ)言,通常是為特定的計(jì)算機(jī)或系列計(jì)算機(jī)專門設(shè)計(jì)的。因?yàn)槭菣C(jī)器指令的符號(hào)化表示,故不同的機(jī)器就有不同的匯編語(yǔ)言。使用匯編語(yǔ)言能面向機(jī)器并較好地發(fā)揮機(jī)器的特性,得到質(zhì)量較高的程序。2高速度和高效率匯編語(yǔ)言保持了機(jī)器語(yǔ)言的優(yōu)點(diǎn),具有直接和簡(jiǎn)捷的特點(diǎn),可有效地訪問(wèn)、控制計(jì)算機(jī)的各種硬件設(shè)備,如磁盤、存儲(chǔ)器、CPU、I/O端口等,且占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語(yǔ)言。3編寫和調(diào)試的復(fù)雜性由于是直接控制硬件,且簡(jiǎn)單的任務(wù)也需要很多匯編語(yǔ)言語(yǔ)句,因此在進(jìn)行程序
21、設(shè)計(jì)時(shí)必須面面俱到,需要考慮到一切可能的問(wèn)題,合理調(diào)配和使用各種軟、硬件資源。這樣,就不可避免地加重了程序員的負(fù)擔(dān)。與此相同,在程序調(diào)試時(shí),一旦程序的運(yùn)行出了問(wèn)題,就很難發(fā)現(xiàn)。匯編語(yǔ)言總是被稱為是低級(jí)語(yǔ)言,并不是說(shuō)匯編語(yǔ)言要被棄之,相反,匯編語(yǔ)言仍然是計(jì)算機(jī)(或微機(jī))底層設(shè)計(jì)程序員必須了解的語(yǔ)言,在某些行業(yè)與領(lǐng)域,匯編是必不可少的,非它不可適用。只是,現(xiàn)在計(jì)算機(jī)最大的領(lǐng)域?yàn)镮T軟件,也是我們常說(shuō)的計(jì)算機(jī)應(yīng)用軟件編程,在熟練的程序員手里,使用匯編語(yǔ)言編寫的程序,運(yùn)行效率與性能比其它語(yǔ)言寫的程序相對(duì)提高,但是代價(jià)是需要更長(zhǎng)的時(shí)間來(lái)優(yōu)化,如果對(duì)計(jì)算機(jī)原理及編程基礎(chǔ)不扎實(shí),反而增加其開(kāi)發(fā)難度,實(shí)在是得不償失,對(duì)比2010年前后的軟件開(kāi)發(fā),已經(jīng)是市場(chǎng)化的軟件行業(yè),加上高級(jí)語(yǔ)言的優(yōu)秀與跨平臺(tái),一個(gè)公司不可以讓一個(gè)團(tuán)隊(duì)使用匯編語(yǔ)言來(lái)編寫所有的東西,花上幾倍甚至幾十倍的時(shí)間,不如使用其它語(yǔ)言來(lái)完成,只要最終結(jié)果不比匯編語(yǔ)言編寫的差太多,就能搶先一步完成,這是市場(chǎng)經(jīng)濟(jì)下的必然結(jié)果。歷史上,匯編語(yǔ)言曾經(jīng)是非常流行的程序設(shè)計(jì)語(yǔ)言之一。但隨著軟件規(guī)模的增長(zhǎng)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 下浮6%合同范本
- 中國(guó)二片式牙口球塞閥項(xiàng)目投資可行性研究報(bào)告
- 養(yǎng)殖戶合同范例
- 按鍵測(cè)試儀行業(yè)深度研究報(bào)告
- 企業(yè)清雪合同范本
- 電子商法背景下電商平臺(tái)的合規(guī)運(yùn)營(yíng)與管理
- 會(huì)計(jì)招聘人員合同范本
- 農(nóng)村建房承建合同范本
- 三家比價(jià)合同范本
- 公司股權(quán)居間服務(wù)合同范本
- 塑膠件承認(rèn)書
- 物聯(lián)網(wǎng)項(xiàng)目實(shí)施進(jìn)度計(jì)劃表
- 學(xué)校校園安全巡邏情況登記表
- DLT5210.4-2018熱工施工質(zhì)量驗(yàn)收表格
- 中國(guó)-各省市地圖可編輯課件
- (兒科學(xué)課件)腎病綜合征
- 光纜線路工程段終版施工圖
- 礦井年度災(zāi)害預(yù)防和處理計(jì)劃
- 畢業(yè)論文-基于Java Web的模擬駕??荚囅到y(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 駱駝祥子1一24章批注
- 新部編人教版四年級(jí)下冊(cè)道德與法治全冊(cè)教案(教學(xué)設(shè)計(jì))
評(píng)論
0/150
提交評(píng)論