版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 課程設(shè)計(jì)報(bào)告課程名稱:計(jì)算機(jī)組成原理與匯編語言報(bào)告題目:字母與進(jìn)制轉(zhuǎn)換系統(tǒng)學(xué)生姓名: 所在學(xué)院:信息科學(xué)與工程學(xué)院專業(yè)班級(jí):指導(dǎo)教師: 2013 年 6月 26 日摘要匯編語言是計(jì)算機(jī)能夠提供給用戶使用的最快且最有效的語言,也是能夠充分利用計(jì)算機(jī)所有硬件資源并能直接控制硬件的唯一語言。用匯編語言編制的程序同機(jī)器語言程序一一對(duì)應(yīng),它的目標(biāo)代碼短,運(yùn)行速度快,在對(duì)程序的時(shí)間和空間要求很高的場(chǎng)合,往往需要采用匯編語言。本程序是用匯編語言編寫的字母與進(jìn)制轉(zhuǎn)換系統(tǒng),擁有三個(gè)子功能。分別為將大寫字母轉(zhuǎn)換為小寫字母,將十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)和將十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)。通過此次課程設(shè)計(jì),我們對(duì)匯編語言的
2、大部分基本指令非常熟悉。分析問題,解決問題的能力將得到極大的提高。關(guān)鍵詞:匯編;語言;進(jìn)制;轉(zhuǎn)換目錄一、課題分析1二、需求分析21功能描述22. 功能模塊分析 2 三、設(shè)計(jì)方案31系統(tǒng)流程圖32子程序模塊設(shè)計(jì)4 3. 詳細(xì)設(shè)計(jì)44程序調(diào)試結(jié)果及分析11四、結(jié)論與心得12五、參考文獻(xiàn)13一、課題分析根據(jù)要求我們做的是完成一個(gè)字母或數(shù)制之間的轉(zhuǎn)化程序,主程序分別具有3種可選擇的子功能,按相應(yīng)的字母(X=>功能1; Y=>功能2; Z=>功能3;)可分別進(jìn)入相應(yīng)的子功能并在屏幕上顯示結(jié)果。3種可選擇的子功能分別為:1)實(shí)現(xiàn)大寫字母向小寫字母的轉(zhuǎn)換2)實(shí)現(xiàn)十進(jìn)制數(shù)向十六進(jìn)制數(shù)的轉(zhuǎn)換3
3、)實(shí)現(xiàn)十六進(jìn)制數(shù)向十進(jìn)制數(shù)的轉(zhuǎn)換。當(dāng)運(yùn)行程序后,應(yīng)該要出現(xiàn)一個(gè)主菜單界面,主界面應(yīng)該要能進(jìn)入三個(gè)子功能界面,即輸入X,進(jìn)入實(shí)現(xiàn)大寫字母向小寫字母的轉(zhuǎn)換的子功能界面;輸入Y,進(jìn)入十進(jìn)制數(shù)向十六進(jìn)制數(shù)轉(zhuǎn)換的子功能界面;輸入Z,進(jìn)入十六進(jìn)制數(shù)向十進(jìn)制數(shù)的轉(zhuǎn)換。如:當(dāng)選中了大寫字母向小寫字母轉(zhuǎn)換的功能后,如果輸入的不是大寫字母,應(yīng)要提示輸入錯(cuò)誤,請(qǐng)重新輸入,直到輸入正確為止。通過改變ASSIC碼值,實(shí)現(xiàn)大寫字母向小寫字母的轉(zhuǎn)換。顯示轉(zhuǎn)換后的字母后,跳轉(zhuǎn)到主菜單,重新選擇子功能。二、需求分析 1.功能描述 本程序共有三個(gè)功能,3種可選擇的子功能分別為:1)實(shí)現(xiàn)大寫字母向小寫字母的轉(zhuǎn)換2)實(shí)現(xiàn)十進(jìn)制數(shù)向十
4、六進(jìn)制數(shù)的轉(zhuǎn)換3)實(shí)現(xiàn)十六進(jìn)制數(shù)向十進(jìn)制數(shù)的轉(zhuǎn)換。輸入相應(yīng)的字符即可分別進(jìn)入相應(yīng)的子功能并在屏幕上顯示結(jié)果。 輸入X:進(jìn)入實(shí)現(xiàn)大寫字母向小寫字母的轉(zhuǎn)換子功能模塊。輸入Y: 進(jìn)入實(shí)現(xiàn)十進(jìn)制數(shù)向十六進(jìn)制數(shù)轉(zhuǎn)換的子功能模塊。輸入Z:進(jìn)入實(shí)現(xiàn)十六進(jìn)制數(shù)向十進(jìn)制數(shù)轉(zhuǎn)換的子功能模塊。如果用戶輸入X,即進(jìn)入實(shí)現(xiàn)大寫字母向小寫字母轉(zhuǎn)換的子功能模塊,如果輸入的不是大寫字母,應(yīng)要提示輸入錯(cuò)誤,請(qǐng)重新輸入,直到輸入正確為止。通過改變ASSIC碼值,實(shí)現(xiàn)大寫字母向小寫字母的轉(zhuǎn)換。顯示轉(zhuǎn)換后的字母后,跳轉(zhuǎn)到主菜單,重新選擇子功能。如果用戶輸入Y,即進(jìn)入實(shí)現(xiàn)十進(jìn)制向十六進(jìn)制轉(zhuǎn)換的子功能模塊,十進(jìn)制轉(zhuǎn)十六進(jìn)制數(shù)以二進(jìn)制為中
5、介,先將輸入視為十進(jìn)制,轉(zhuǎn)換為二進(jìn)制數(shù)保存在BX中。然后再將這個(gè)二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)保存在之前設(shè)定的單元中并輸出,然后跳轉(zhuǎn)到主菜單。如果用戶輸入Z,即進(jìn)入實(shí)現(xiàn)十六進(jìn)制向十進(jìn)制轉(zhuǎn)換的子功能模塊,十六進(jìn)制轉(zhuǎn)換為十進(jìn)制數(shù)的主要思想是按權(quán)值展開再相加,轉(zhuǎn)換輸出后,跳轉(zhuǎn)到主菜單。2.功能模塊分析 本程序主要由四個(gè)模塊構(gòu)成。首先是主界面,將顯示本程序擁有的所有的子功能。然后是三個(gè)子功能。分別擁有將大寫字母轉(zhuǎn)換成小寫字母,將十進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù),將十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)的功能。 主菜單:顯示系統(tǒng)名稱,顯示各字母編號(hào)所對(duì)應(yīng)的子功能。 大寫字母轉(zhuǎn)換成小寫字母:當(dāng)用戶輸入X編號(hào)時(shí),便進(jìn)入此子功能。提示輸
6、入一個(gè)大寫字母,如果輸入的不是大寫字母則提示輸入錯(cuò)誤,請(qǐng)重新輸入。通過改變ASSIC碼值,實(shí)現(xiàn)大寫字母向小寫字母的轉(zhuǎn)換。顯示轉(zhuǎn)換后的字母,然后跳轉(zhuǎn)到主菜單。十進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù):當(dāng)用戶輸入Y編號(hào)時(shí),便進(jìn)入此子功能。提示輸入一個(gè)十進(jìn)制數(shù),十進(jìn)制轉(zhuǎn)十六進(jìn)制數(shù)以二進(jìn)制為中介,先將輸入視為十進(jìn)制,轉(zhuǎn)換為二進(jìn)制數(shù)保存在BX中。然后再將這個(gè)二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)保存在預(yù)先準(zhǔn)備的單元中,輸出之后跳轉(zhuǎn)到主菜單。 十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù):當(dāng)用戶輸入Z編號(hào)時(shí),便進(jìn)入此子功能。提示輸入一個(gè)十六進(jìn)制數(shù),十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制的主要思想是,按權(quán)值展開再相加。首先是將輸入的字符轉(zhuǎn)換成相應(yīng)的數(shù)字,通過設(shè)置相應(yīng)的變量
7、,依次進(jìn)行累乘,直到十六進(jìn)制數(shù)位數(shù)全部循環(huán)完畢,將每一位所得的數(shù)保存在寄存器中,每進(jìn)行一次就實(shí)現(xiàn)一次求和運(yùn)算。最后將轉(zhuǎn)換成的十進(jìn)制數(shù)輸出,跳轉(zhuǎn)到主菜單。三、設(shè)計(jì)方案1.系統(tǒng)流程圖主菜單 開 始輸入有誤,重新輸入其他退出XYZQ輸入十六進(jìn)制數(shù)輸入十進(jìn)制數(shù)輸入大寫字母輸入錯(cuò)誤輸入錯(cuò)誤輸入錯(cuò)誤判斷輸入是否合法判斷輸入是否合法N判斷輸入是否合法N轉(zhuǎn)換小寫字母轉(zhuǎn)換十六進(jìn)制NY轉(zhuǎn)換十進(jìn)制YY結(jié) 束輸出輸出輸出2.子程序模塊設(shè)計(jì)(1)大寫字母轉(zhuǎn)換成小寫字母子程序當(dāng)用戶選擇編號(hào)X,便選中了這一個(gè)子功能。通過判斷標(biāo)識(shí)符,程序跳轉(zhuǎn)到標(biāo)識(shí)符所在的位置。根據(jù)提示輸入一個(gè)大寫字母,會(huì)有一個(gè)判斷輸入是否合法的過程,若輸入
8、的是非大寫字母,則會(huì)提示輸入錯(cuò)誤,請(qǐng)重新輸入,直到輸入正確為止。通過改變ASSIC碼值,實(shí)現(xiàn)大寫字母向小寫字母的轉(zhuǎn)換。顯示轉(zhuǎn)換后的字母,然后跳轉(zhuǎn)到主菜單。(2)十進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)子程序 當(dāng)用戶選擇編號(hào)Y,便選中了這一個(gè)子功能。通過判斷標(biāo)識(shí)符,程序跳轉(zhuǎn)到標(biāo)識(shí)符所在的位置。根據(jù)提示輸入一個(gè)十進(jìn)制數(shù)。總體來說是以二進(jìn)制為中介,先將輸入視為十進(jìn)制,轉(zhuǎn)換為二進(jìn)制數(shù)保存在BX中,然后再將這個(gè)二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)保存在之前定義好的的單元中并輸出,然后跳轉(zhuǎn)到主菜單。(3)十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)子程序 當(dāng)用戶選擇編號(hào)Z,便選擇了這一個(gè)子功能。通過判斷標(biāo)識(shí)符,程序跳轉(zhuǎn)到標(biāo)識(shí)符所在的位置。根據(jù)提示輸入一
9、個(gè)十六進(jìn)制數(shù),此時(shí)會(huì)進(jìn)行判斷,若是輸入字符串不符合十六進(jìn)制數(shù)的要求,則提示輸入錯(cuò)誤,重新輸入,直到輸入正確為止。十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制的主要思想是,按權(quán)值展開再相加。首先是將輸入的字符轉(zhuǎn)換成相應(yīng)的數(shù)字,通過設(shè)置相應(yīng)的變量,在最低位上的權(quán)值是1,然后依次是16,256依次進(jìn)行累乘,直到十六進(jìn)制數(shù)位數(shù)全部循環(huán)完畢,將每一位所得的數(shù)保存在寄存器中,每進(jìn)行一次就實(shí)現(xiàn)一次求和運(yùn)算。最后將轉(zhuǎn)換成的十進(jìn)制數(shù)輸出,跳轉(zhuǎn)到主菜單。3.詳細(xì)設(shè)計(jì)(1)主菜單設(shè)計(jì)include io32.inc .data m1 byte ' 字母與進(jìn)制轉(zhuǎn)換系統(tǒng) ',13,10,0 ;菜單 m2 byte '
10、-',13,10,0 ;分割線 m3 byte ' 編號(hào) 操作 ',13,10,0 ma byte ' X 實(shí)現(xiàn)大寫字母向小寫字母的轉(zhuǎn)換',13,10,0 mc byte ' Y 實(shí)現(xiàn)十進(jìn)制向十六進(jìn)制數(shù)的轉(zhuǎn)換',13,10,0 me byte ' Z 實(shí)現(xiàn)十六進(jìn)制向十進(jìn)制數(shù)的轉(zhuǎn)換',13,10,0 mq byte ' Q 退出',13,10,0 m_err byte ' 輸入錯(cuò)誤,請(qǐng)重新輸入',13,10,0 m_meau byte '請(qǐng)輸入菜單中的編號(hào): ',0 m_inp
11、utl byte '請(qǐng)輸入一個(gè)大寫字母: ',0 m_outputl byte '對(duì)應(yīng)的小寫字母: ',0m_meau byte '請(qǐng)輸入菜單中的編號(hào): ',0 m_input1 byte '請(qǐng)輸入一個(gè)十進(jìn)制數(shù): ',0 m_output1 byte '轉(zhuǎn)換后的十六進(jìn)制的數(shù): ',0m_meau byte '請(qǐng)輸入菜單中的編號(hào): ',0 m_input3 byte '請(qǐng)輸入一個(gè)十六進(jìn)制的數(shù): ',0 m_output3 byte '轉(zhuǎn)換后的十進(jìn)制數(shù): ',0 arra
12、y byte 8 dup (0) ;用字符串?dāng)?shù)組保存十六進(jìn)制數(shù) sum dword ? ;十進(jìn)制數(shù)變量 len byte ? ;字符串?dāng)?shù)組的長(zhǎng)度 m byte ? array2 byte 100 dup (0) ;用來保存轉(zhuǎn)換后的十六進(jìn)制數(shù) n dword ? k dword ? j dword ? .codestart: mov eax,offset m1 ;顯示菜單中的內(nèi)容 call dispmsg mov eax,offset m2 call dispmsg mov eax,offset m3 call dispmsg mov eax,offset mx call dispmsg mov
13、 eax,offset my call dispmsg mov eax,offset mz call dispmsg mov eax,offset mq call dispmsgmeau: mov eax,offset m_meau call dispmsg ;提示輸入相應(yīng)的菜單編號(hào) call readc ;輸入對(duì)應(yīng)的編號(hào) call dispcrlf ;換行 cmp al,'x' ;判斷輸入 jz a ;若輸入x,則跳轉(zhuǎn)到標(biāo)識(shí)符a cmp al,'y' jz b ;若輸入y,則跳轉(zhuǎn)到標(biāo)識(shí)符b cmp al,'z' jz c ;若輸入z,則跳轉(zhuǎn)到標(biāo)
14、識(shí)符c cmp al,'q' jz q ;若輸入q,則跳轉(zhuǎn)到標(biāo)識(shí)符q mov eax,offset m_err call dispmsg ;輸入錯(cuò)誤,提示錯(cuò)誤的信息 jmp meau(2)大寫字母轉(zhuǎn)換為小寫字母子程序設(shè)計(jì) returna: mov eax,offset m_err call dispmsga: mov eax,offset m_inputl call dispmsg ;提示輸入一個(gè)大寫的字母 call readc ;獲得字母 mov bl,al ;將輸入的內(nèi)容存儲(chǔ)到bl中 call dispcrlf ;換行 cmp al,'A' ;判斷輸入的字母
15、是否合法 jb returna ;如果比'A'小,則跳轉(zhuǎn)到returna標(biāo)識(shí)符 cmp al,'Z' ja returna ;如果比'Z'大,則跳轉(zhuǎn)到returna標(biāo)識(shí)符 call dispc ;顯示字母 mov eax,offset m_outputl call dispmsg ;輸入正確,則提示輸出相應(yīng)的小寫字母 add bl,20h ;實(shí)現(xiàn)大寫向小寫的轉(zhuǎn)換 mov al,bl call dispc ;顯示轉(zhuǎn)換后的字母 call dispcrlf ;換行 jmp meau (3)十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)子程序設(shè)計(jì) data segmentst
16、r db 0ah,0dhnum db 4 dup(?),'H$'tab db '0123456789ABCDEF'data endscode segment assume cs:code,ds:databegin: mov ax,data mov ds,ax ;初始化代碼段 xor bx,bx mov cx,10 ;進(jìn)制next: mov ah,1 int 21h cmp al,0dh jz conv ;如果是回車,表示輸入結(jié)束,轉(zhuǎn)換開始 push ax ;保存輸入值,和AH mov ax,bx mul cx mov bx,ax ;將先前的結(jié)果向上推一位 pop
17、 ax ;取回本次輸入 and al,0fh ;屏蔽掉無用位,類SUB AL,30H xor ah,ah ;高位歸零 add bx,ax ; 合并本次輸入 jmp nextconv: mov ax,bx ; 開始轉(zhuǎn)換 mov ch,4 lea bx,tab mov cl,4 lea si,numlopa: rol ax,cl ; 把高4位移到低4位 push ax and ax,000fh ; 取出低4位 mov si,al ;按地址由低到高的順序?qū)⒔Y(jié)果由高到底存放 inc si pop ax dec ch jnz lopa lea dx,str mov ah,9 int 21h ;回車換行
18、mov ah,4ch int 21h call dispcrlf jmp meau ;返回主菜單(4)十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)子程序設(shè)計(jì) mov m,al mov eax,offset m_input3 call dispmsg mov eax,offset array call readmsg mov len,al ;獲得字符串長(zhǎng)度 xor ecx,ecx ;異或清零 mov cl,len ;計(jì)數(shù) dec cl ;自減1 xor eax,eax mov edx,1 ;初始權(quán)值again: cmp arrayecx,'A' jl shiliu_shi1 ;小于A,轉(zhuǎn)向shili
19、u_shi1 cmp arrayecx,'F' jg shiliu_shi1 ;大于Z,轉(zhuǎn)向shiliu_shi1 xor ebx,ebx mov bl,arrayecx ;相對(duì)尋址 sub bl,55 ;轉(zhuǎn)換成相應(yīng)的數(shù)字 imul ebx,edx add eax,ebx imul edx,16 ;改變權(quán)值 jmp shiliu_shi3shiliu_shi1: cmp arrayecx,'0' jl shiliu_shi2 ;小于0,轉(zhuǎn)向shiliu_shi2 cmp arrayecx,'9' jg shiliu_shi2 ;大于9,轉(zhuǎn)向shi
20、liu_shi2 xor ebx,ebx ;臨時(shí)寄存 mov bl,arrayecx sub bl,'0' ;轉(zhuǎn)換成相應(yīng)的數(shù)字 imul ebx,edx add eax,ebx imul edx,16 ;改變權(quán)值 jmp shiliu_shi3 shiliu_shi2: mov eax,offset m_err call dispmsg ;提示輸入錯(cuò)誤 jmp zshiliu_shi3: dec ecx ;自減 cmp ecx,0 jnl again ;不小于0,轉(zhuǎn)向again mov sum,eax cmp m,'e' jz ee ;直接輸出ee: mov eax,offset m_output3 call dispmsg mov eax,sum ;數(shù)據(jù)輸出 call dispuid call dispcrlf jmp me
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年塑料棒棉簽項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年UV紙張上光油項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年石雕墓碑項(xiàng)目投資價(jià)值分析報(bào)告
- 2025年食堂勞務(wù)外包合同:節(jié)能環(huán)保與可持續(xù)發(fā)展協(xié)議3篇
- 二零二五年度名筑印象電梯設(shè)備定期檢查及保養(yǎng)合同4篇
- 2025年度綠化項(xiàng)目生態(tài)修復(fù)勞務(wù)承包合同樣本4篇
- 二零二五年度孟安與配偶離婚協(xié)議:共同財(cái)產(chǎn)分割及子女監(jiān)護(hù)協(xié)議4篇
- 導(dǎo)演與攝影師2025年度合作協(xié)議3篇
- 2025年銷售人員合同范本:旅游產(chǎn)品銷售合作協(xié)議2篇
- 城東小學(xué)2025年度智能調(diào)光窗簾紗窗采購(gòu)合同2篇
- 2025春夏運(yùn)動(dòng)戶外行業(yè)趨勢(shì)白皮書
- 《法制宣傳之盜竊罪》課件
- 通信工程單位勞動(dòng)合同
- 2024年醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理規(guī)范培訓(xùn)課件
- 高低壓配電柜產(chǎn)品營(yíng)銷計(jì)劃書
- 2024年4月自考02202傳感器與檢測(cè)技術(shù)試題
- 社會(huì)系統(tǒng)研究方法的重要原則
- 重癥醫(yī)學(xué)科健康宣教手冊(cè)
- 2022版《義務(wù)教育英語課程標(biāo)準(zhǔn)》解讀培訓(xùn)課件
- 五個(gè)帶頭方面談心談話范文三篇
- 互聯(lián)網(wǎng)的發(fā)展歷程
評(píng)論
0/150
提交評(píng)論