匯編語言實(shí)驗(yàn)報(bào)告_第1頁
匯編語言實(shí)驗(yàn)報(bào)告_第2頁
匯編語言實(shí)驗(yàn)報(bào)告_第3頁
匯編語言實(shí)驗(yàn)報(bào)告_第4頁
匯編語言實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、匯編語言實(shí)驗(yàn)報(bào)告 學(xué)院:職級(jí)學(xué)院 專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)號(hào):20141090094 姓名:楊瀅萍1.對匯編語言的認(rèn)識(shí)匯編語言(AssemblyLanguage)是面向機(jī)器的程序設(shè)計(jì)語言。在匯編語合中,用助記符(Memoni)代替操作碼,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label)代替地址碼。這樣用符號(hào)代替機(jī)器語言的二進(jìn)制碼,就把機(jī)器語言變成了匯編語言。于是匯編語言亦稱為符號(hào)語言。使用匯編語言編寫的程序,機(jī)器不能直接識(shí)別,要由一種程序?qū)R編語言翻譯成機(jī)器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統(tǒng)軟件中語言處理系統(tǒng)軟件。2.實(shí)驗(yàn)基本原理1.掌握常用的工具軟件masm2.偽指令:se

2、gment,ends,assume,end,offset,dup;3.利用的int 21h的一號(hào)功能實(shí)現(xiàn)鍵盤輸入方法實(shí)驗(yàn)1實(shí)驗(yàn)?zāi)康模簩?0到07單元內(nèi)容相加知識(shí)點(diǎn)-eds:進(jìn)入程序改代碼-dds:進(jìn)入程序找代碼-a100:Debug的a命令可以匯編出簡單的com文件,所以debug編寫的程序一定要由地址100(com文件要求開始才合法。Follow me,setp by set(步步回車))1. 放數(shù) 用-eds將00到07的數(shù)逐一放入程序中2.設(shè)置地址,及查看執(zhí)行結(jié)果實(shí)驗(yàn)2實(shí)驗(yàn)?zāi)康模呵笠詀為首址的連續(xù)4個(gè)字單元的和保存在b變量單元中。1. 設(shè)置地址,查看地址2. 執(zhí)行結(jié)果實(shí)驗(yàn)3:實(shí)驗(yàn)?zāi)康模簩?/p>

3、數(shù)字1,3,5,7放入內(nèi)存1.放數(shù),執(zhí)行結(jié)果實(shí)驗(yàn)4:實(shí)驗(yàn)?zāi)康模和瓿?0237546-00129428的帶借位相減分析:雙字節(jié)即32位的減法需要用兩個(gè)16位的寄存器表示,假設(shè)被減數(shù)被存放在dx(高16位中),ax(低16位)寄存器中;減數(shù)存放在bx(高16位),cx(低16位)寄存器中,相減結(jié)果的差存放在dx(高16wei),ax(低16 位)寄存器中。知識(shí)點(diǎn):-u:反匯編-g:截取代碼段,執(zhí)行程序1.放數(shù),及其查看結(jié)果實(shí)驗(yàn)5實(shí)驗(yàn)?zāi)康模簩ぶ贩绞降膽?yīng)用舉例例題:將1000h開始的20個(gè)字節(jié)單元搬到2000h開始的20個(gè)字節(jié)單元中方法一:設(shè)置兩個(gè)指針bx,di,將數(shù)存入單元格,修改指針,直到20個(gè)數(shù)

4、全部取完。方法二:采用相對基址變址尋址方式來實(shí)現(xiàn)方法三:設(shè)置兩個(gè)1000h和2000h的首地址,設(shè)置一個(gè)基地址,用基址變址尋址方式來實(shí)現(xiàn)。以及將20位換為 100位方法四:用設(shè)置指針di指向取數(shù)首地址,采用相對寄存器尋址方式實(shí)現(xiàn)20個(gè)數(shù)的傳遞。1.查看dds中數(shù)據(jù)情況2.放數(shù)3.a移邊,執(zhí)行程序,執(zhí)行結(jié)果實(shí)驗(yàn)6實(shí)驗(yàn)?zāi)康模?比較指令的應(yīng)用舉例 例:ah代表高8位,al代表地8位,放數(shù),及其查看結(jié)果(1)放數(shù)據(jù),查看執(zhí)行結(jié)果(2)累加計(jì)算過程(3)計(jì)算出最終的運(yùn)行結(jié)果執(zhí)行結(jié)果如下: (1)累加計(jì)算過程,將a+2放入b中(2)查看原始內(nèi)存并放數(shù)據(jù)(3)查看執(zhí)行結(jié)果使用masm來編寫程序?qū)嶒?yàn)步驟1.

5、用Edit或其他編程軟件,編寫。Asm源程序,例如hexasc.asm及dspkey.asm.2. 用link對其進(jìn)行匯編及連接,產(chǎn)生.exe文件3. 對.exe文件進(jìn)行調(diào)試運(yùn)行(1) 用debug進(jìn)行調(diào)試運(yùn)行,學(xué)會(huì)修改al內(nèi)容的方法;(2) 對dspkey.exe鍵入不同字符,分別進(jìn)行調(diào)試;(3) 在ms-dos下運(yùn)行這兩個(gè).Exe文件實(shí)驗(yàn)7實(shí)驗(yàn)?zāi)康模狠斎胱址词欠癯绦蚴欠裼邢嗤址?.寫程序時(shí)可以利用流程圖來輔助編寫程序顯示相等結(jié)束2.源程序data segmentnum db '12345678abcd'len equ $-nummess db 'Please i

6、nput your number: $'ok db 13,10, 'it has been found ! $'no db 13,10, 'it has not been found ! $'data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax lea dx,mess mov ah,9 int 21h mov ah,1 int 21h mov si,offset num mov di,offset num+lenredo: mov bx,si add bx,di

7、shr bx,1 mov dl,bx cmp al,dl jz win jc xiao inc bx mov si,bx jmp nextxiao: dec bx mov di,bxnext: cmp di,si jc lose jmp redowin: lea dx,ok mov ah,9 int 21h jmp jshulose: lea dx,no mov ah,9 int 21hjshu: mov ah,4ch int 21hcode ends end start3.運(yùn)行結(jié)果實(shí)驗(yàn)8冒泡排序 冒泡排序 執(zhí)行如下添加子程序后實(shí)驗(yàn)9二分法,流程圖源代碼num db '12345678

8、abcd'len equ $-nummess db 'Please input your number: $'ok db 'it has been found ! $'no db 'it has not been found ! $'data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax lea dx,mess mov ah,9 int 21h mov ah,1 int 21h mov si,offset num mov di,offset num+

9、lenredo: mov bx,si add bx,dl shr bx,1 mov dl,bx cmp al,dl jz shi jc xiao inc bx mov si,bx jmp nextxiao: dec bx mov di,bxnext: cmp di,si jc bshi jmp redoshi: lea dx,ok mov ah,9 int 21h jmp jshubshi: lea dx,no mov ah,9 int 21hjshu: mov ah,4ch int 21hcode ends end start實(shí)驗(yàn)10實(shí)驗(yàn)?zāi)康模悍诸惤y(tǒng)計(jì)輸入字母大小寫和數(shù)字個(gè)數(shù)data seg

10、mentmess db 0dh,0ah,'Input String: $'sz db 0 dAx db 0 xXx db 0SZ_C DB 100 DUP ('$')DX_C DB 100 DUP ('$')XX_C DB 100 DUP ('$')CRLF DB 0DH,0AH,'$'data endscode segment assume cs:code, ds:data main proc farstart:push dsxor ax,axpush axmov ax,datamov ds,ax;-call c

11、rlf_pmov ah,09mov dx,offset messint 21hnext:mov ah,01int 21hCMP AL,0DHJNZ GOONJMP DISP_1 GOON:cmp al,'0'jl NEXTcmp al,'9'jg NO_0_9inc SZMOV BX,OFFSET SZ_CMOV CX,0MOV CL,SZADD BX,CXDEC BX MOV BX,ALJMP NEXTNO_0_9:cmp al,'A'jl NEXTcmp al,'Z'jg NO_D_AZinc DAXMOV BX,OFFSET

12、 DX_C MOV CX,0MOV CL,DAXADD BX,CXDEC BX MOV BX,ALJMP NEXTNO_D_AZ:cmp al,'a'jl NEXTcmp al,'z'jg NO_X_AZinc XXXMOV BX,OFFSET XX_C MOV CX,0MOV CL,XXXADD BX,CXDEC BX MOV BX,ALJMP NEXTNO_X_AZ:JMP NEXTDISP_1:CALL CRLF_PCALL CRLF_Pmov al,SZCALL DISP_CZRmov ah,09lea dx,SZ_Cint 21h;-CALL CRLF_Pmov al,DAXCALL DISP_CZRmov ah,09lea dx,DX_Cint 21h;-CALL CRLF_Pmov al,XXXCALL DISP_CZR mov ah,09lea dx,XX_Cint 21h;-CALL CRLF_P;-ENDD:retmain endp ;=DISP_CZR PROC NEAR xor ah,ah;mov al,nummov bl,100ddiv blpush axadd al,30hmov dl,almov ah,2int 21hpop axmov al,ahxor ah,ahmov bl,10ddiv bladd ax

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論