1 / 13

IA32 CPU MASM615

IA32 CPU MASM615. 程式初體驗. 程式之組成. 程式樣式 輸出功能 簡易資料輸出 輸入功能 鍵盤輸入 算數處理基本程式碼 程式發展  過程 與 範例 Homework. 程式樣式. TITLE (b32. asm) ; This program 程式說明區 ; Last update: Include Irvine32.inc ; 使用之其他程式庫之定義檔於此加入 .data ; 使用之資料變數定義於此 .code main PROC ; 使用之主程式流程定義於此 exit ; 正常返回作業系統

amina
Download Presentation

IA32 CPU MASM615

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IA32 CPUMASM615 程式初體驗

  2. 程式之組成 • 程式樣式 • 輸出功能簡易資料輸出 • 輸入功能鍵盤輸入 • 算數處理基本程式碼 • 程式發展過程與範例 • Homework

  3. 程式樣式 TITLE (b32.asm) ; This program程式說明區 ; Last update: Include Irvine32.inc ; 使用之其他程式庫之定義檔於此加入 .data ; 使用之資料變數定義於此 .code main PROC ; 使用之主程式流程定義於此 exit ; 正常返回作業系統 main ENDP ; 其他自己撰寫之副程式定義於此 END main TITLE (b16.asm) ; This program程式說明區 ; Last update: Include Irvine16.inc ;使用之其他程式庫之定義檔於此加入 .data ; 使用之資料變數定義於此 .code main PROC mov ax,@data mov ds,ax ; 使用之主程式流程定義於此 exit ; 正常返回作業系統 main ENDP ; 其他自己撰寫之副程式定義於此 END main • 基本之程式格局 • 16bit模式b16.asm • 32bit模式b32.asm

  4. DOS INT 21H AH=9h輸出字串 AH=2輸出自元 Irvine32.inc or irvine16.inc WriteBin WriteChar WriteDec WriteHex WrintInt WrintString 簡易輸出 • 輸出方式基本有三種 • 使用BIOS或DOS(操作系統之函數) • 使用現有之程式庫 • 自己撰寫I/O之驅動程式 • 本課程以前兩種方式為主 因為使用現有之程式 因此需記住每一個程式 之使用規定 。

  5. DOS INT 21H AH=1h輸入字元 Irvine32.inc or irvine16.inc ReadChar ReadHex ReadInt ReadString 鍵盤輸入 • 輸出方式基本有三種 • 使用BIOS或DOS(操作系統之函數) • 使用現有之程式庫 • 自己撰寫I/O之驅動程式 • 本課程以前兩種方式為主 因為使用現有之程式 因此需記住每一個程式 之使用規定

  6. 加減運算 .data buf_a sdword ? buf_b sdword ? result sdword ? .code ;buf_a+buf_beax mov eax, buf_a add eax, buf_b • 運算需弄清楚運算元為何、多少位元? • MASM所有運算指令皆只能有一記憶體型態之運算元,若需執行兩記憶體間運算,須先將其中一運算元先設定為暫存器AX~DX。 ;buf_a+10eax mov eax, buf_a add eax, 10 ;buf_a-buf_beax mov eax, buf_a sub eax, buf_b ;buf_a+buf_bresult mov eax, buf_a add eax, buf_b mov resuld,eax

  7. 實戰演練步驟: 一、程式功能分析 三(b)流程控制:判斷?或迴圈?或跳躍,代入現有之流程樣板程式段 二、將所需完成之功能分門別類, input、output、運算、流程判斷、資料處理、… 三(c)資料處理: 分析是基本運算(+-*/,and or)或進階運算(如:亂數, 尋找是否有可用之副程式) 三(a)輸出入: 分辨所要輸出入之格式(dec,Hex,char, string), 依屬性呼叫對應之副程式

  8. 實戰演練:過程 一、程式碼驗證是否可正確組譯執行。 重覆1、2、3至所有功能正確,合併整合驗算正確。 使用者使用與功能驗證。 二、程式功能是否可觀察,結果是否正確。 三、與其他功能何合併驗證、是否正確? 程式完成

  9. 答題步驟範例 • 依上張投影片實戰演練步驟,根據題目要求分析,並規劃程式(題目中之選項順序) 。 • 將所答之順序,先透過編輯程式與MAKE32組譯驗證,並執行確認無誤後,再填入答案順序,儲存。 • 待所有題目完成後提交。 • 因為是隨機出題,且題目繁多,請勿以測試方式否則無法完成(因為每此題目不同),也無法訓練你自己寫程式。 • 所有題目正確後才有權繳交本次作業(相關作業將累計為期末成績)。

  10. Homework • 應用範例所述之技巧,設計一簡易計算器。功能如下: • 列印選擇訊息(0:結束,+:加法,-:減法) • 依所選擇功能執行,並輸出結果。 • Homework之輸出規格1 • Homework之輸出規格2 • 作業寫作建議

  11. Homework之輸出規格1

  12. Homework之輸出規格2

  13. 作業寫作建議 • 一、先完成課堂上之網路程式測驗。 • 二、設計作業之方案 • 方案一:應用home_s2.asm, home.inc,將home_s2.asm之???處填入適當之訊息與指令。 • 方案二:依網路程式測驗之經驗與作業輸出要求自行設計,執行流程可參考home_s2.asm

More Related