北京理工匯編語言實驗四實驗報告_第1頁
北京理工匯編語言實驗四實驗報告_第2頁
北京理工匯編語言實驗四實驗報告_第3頁
北京理工匯編語言實驗四實驗報告_第4頁
北京理工匯編語言實驗四實驗報告_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

班級:05211102學號:1120111306姓名:龐珂匯編語言實驗四實驗報告——分支和循環程序設計實驗(設計性實驗)班級:05211102姓名:龐珂學號:1120111306日期:2013.9.10早8:30:00~11:30分支和循環程序設計實驗(設計性實驗)一、實驗要求和目的1.熟悉匯編語言程序設計結構;2.熟悉匯編語言分支程序基本指令的使用方法;3.掌握利用匯編語言實現單分支、雙分支、多分支的程序設計方法;4.了解匯編語言循環程序設計的基本流程;5.熟悉匯編語言循環基本指令的使用方法;6.掌握利用匯編語言的循環指令完成循環程序設計方法。軟硬件環境1、硬件環境:計算機系統windows;2、軟件環境:裝有MASM、DEBUG、LINK、等應用程序。實驗涉及的主要知識在實際應用中,經常根據一些條件來選擇一條分支執行。匯編語言的條件判斷主要是通過狀態寄存器中的狀態位、無符號數相減或有符號相減而導致的結果來進行。1.無條件轉移指令JMP無條件轉移指令JMP是使程序無條件轉移至目標處,又分為段內轉移、段間轉移。條件轉移指令JXX條件轉移指令可分為三大類: 標志位指令轉移條件意義CFJCCF=1有進位/借位JNCCF=0無進位/借位ZFJE/JZZF=1相等/等于0JNE/JNZZF=0不相等/不等于0SFJSSF=1是負數JNSSF=0是正數OFJOOF=1有溢出JNOOF=0無溢出PFJP/JPEPF=1有偶數個1JNP/JP0PF=0有奇數個12).無符號數條件轉移指令。假設在條件轉移指令前使用比較指令,比較兩個無符號數A,B,指令進行的的操作是A-B,其轉移指令如下:指令轉移條件意義JA/JNBECF=0ANDZF=0A>BJAE/JNBCF=0ORZF=1A>=BJB/JNAECF=1ANDZF=0A<BJBE/JNACF=1ORZF=1A<=B.帶符號數條件轉移指令。指令轉移條件意義JG/JNLESF=OFANDZF=0A>BJGE/JNLSF=OFORZF=1A>=BJL/JNGESFOFANDZF=0A<BJLE/JNGSFOFORZF=1A<=B在匯編程序設計中,循環結構的組成及其設計方法的知識要點有:1、循環程序的基本結構通常由3部分組成1)初始化部分2)循環體①循環工作部分:完成程序功能的主要程序段,用于解決程序的實際任務;②修改部分:對循環參數進行修改,并為下一次循環做準備;③循環控制部分:判斷循環結束條件是否滿足。通常判斷循環結束方法:用計數控制循環;循環是否進行了預定的次數。用條件控制循環。循環終止條件是否滿足。3)結束處理處理部分2、循環控制指令:指令格式執行操作循環結束條件LOOP標號CX=CX-1;若CX=0,則循環CX=0LOOPNZ/LOOPNE標號CX=CX-1;若CX=0且ZF=0,則循環CX=0或ZF=0LOOPZ/LOOPE標號CX=CX-1;若CX=0且ZF=1,則循環CX=0或ZF=1JCXZ標號僅測試(CX)=0?若等于0,則轉移到目標地址,否則就順序執行循環控制可以分為:計數循環和條件循環。實驗內容與步驟實驗一:實驗要求:判斷方程AX2+BX+C=0是否有實根。若有實根,則將字節變量tag置1,否則置0。假設A、B、C均為字節變量,數據范圍為-128~127。實驗流程圖:開始輸入輸入A1,B1,C1數據,轉化為十進制求B1*B14*A1*C1使用使用CMP,對B1*B1和4*A1*C1做差比較使用小于?小于?YTAG=1TAG=0TAG=1TAG=0TAG=TAG+30HTAG=TAG+30H輸出TAG輸出TAG結束結束實驗源程序代碼:實驗結果:1)無根的情況:有根的情況:實驗二:實驗要求:編寫一個程序,判別鍵盤上輸入的字符;若是1-9字符,則顯示之;若為A-Z字符,顯示“C”;若為a-z字符,顯示“c”;若是回車字符<CR>(其ASCII碼為0DH),則結束程序,若為其它字符則顯示顯示“R”。實驗流程圖:開始輸入字符執行CMP,與0DH做差比較=0?Y=0?N執行CMP,與1做差比較執行CMP,與1做差比較<0?Y<0?N執行CMP,與9做差比較執行CMP,與9做差比較>0?>0?NY執行CMP,與A做差比較執行CMP,與A做差比較<0?<0?YN執行CMP,與Z比較執行CMP,與Z比較>0?N>0?輸出C輸出C輸出本身Y輸出本身執行CMP,與a做差比較執行CMP,與a做差比較<0?Y<0?N執行CMP,與z做差比較執行CMP,與z做差比較>0?>0?N輸出cY輸出c輸出R輸出R結束結束實驗源程序代碼:實驗結果:輸入2,輸出2輸入E,輸出C輸入d,輸出c輸入空格,結束輸入=,輸出R實驗三實驗要求:(大家再次編成實現實驗一的題目,看是否可以優化程序?)分類統計字數組data中正數、負數和零的個數,并分別存入內存字變量Positive、Negative和Zero中,數組元素個數保存在其第一個字中。使用Debug查看Positive、Negative和Zero三個變量的數據。實驗流程圖:開始開始[SI]記錄偏移地址[SI]記錄偏移地址CX記錄數據個數cx=0?Ycx=0?取一個元素N取一個元素和0比較Positive+1SI+1>0?Positive+1SI+1>0?YNZero+1SI+1判斷=0?YZero+1SI+1判斷=0?NNegative+1Negative+1Si+1結束結束3.實驗源程序代碼:

4.實驗結果:實驗四實驗要求:編寫程序,在字符串變量STRING中存有一個以$為結尾的ASCII碼字符串,要求計算字符串的長度,并把它存入LENGTH單元中。(要求用條件控制循環方法,并且字符串分數據類型是字節和字兩種情況)實驗流程圖:開始開始分別定義字型STRING2和字節型STRING1SI=0SI=0取string1的元素和$比較取string1的元素和$比較=0?SI+1=0?SI+1LENTH[0]+1YSI=0SI=0取string2的元素和$比較取string2的元素和$比較SI+2LENTH[1]+1SI+2LENTH[1]+1=0?Y結束結束實驗源程序代碼:實驗結果:字符型:有5個(SI)字型:有12個(SI)注意:涉及到初始數據的,同學們自行給出多組數據,反復加以驗證各題程序。五.實驗心得這次實驗主要學習了分支與循環控制,通過對各個題目的分析和理解,基本掌握了計數循環控制盒條件循環控制,以及對于不同情況下的分支描述。同時為了提高輸出效果,在各個程序的編程過程中,均給出了相應的提示信息,從而熟練掌握了字符串的輸出。在第一題中,同時練習了數字和ASC

溫馨提示

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

評論

0/150

提交評論