教科书系统程式-组合语言.PDFVIP

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
教科书系统程式-组合语言

第3 章、組合語言 作者:陳鍾誠 旗標出版社 第3 章、組合語言  3.1 基本範例  3.2 陣列存取  3.3 副程式呼叫  3.4 進階語法  3.5 實務案例:IA32 的組合語言 CPU0 的組合語言  前置表示法  CPU0 的組合語言一律採用目標在前的撰寫方式。  範例  ADD R1, R2, R3 相當於 R1 = R2 + R3 3.1 基本範例  資料移動  基本數學運算  模擬條件判斷  模擬迴圈  一個完整範例-- 從 1 加到 10 資料移動  C 語言  組合語言  以組合語言移動記憶體資料 基本數學運算 模擬條件判斷 模擬迴圈 一個完整範例- 從 1 加到 10 3.2 陣列存取  字串複製 (指標版)  字串複製 (索引版)  整數陣列的複製 字串複製 (指標版) 字串複製 (索引版) 整數陣列的複製 3.3 副程式呼叫  單層次的副程式呼叫  參數的傳遞方法– 使用暫存器  多層次的副程式呼叫  參數的傳遞方法– 使用堆疊 單層次的副程式呼叫  參數的傳遞方法– 使用暫存器 指令CALL [0x30] 的執行過程 (1) PC=PC + 4; 在指令擷取之後PC 從28 變為2C 。 (2) LR = PC; 將 PC 存入到連結暫存器LR 中。 (3) PC=PC + 30 記憶體 0028 2B 00 00 30 =CALL [0x30] ALU (1) 暫存器 002C (加法運算) 00 00 00 5C (3) PC = 00 00 00 2C 005C IR = 2B 00 00 30 (CALL [0x30]) (2) LR = 00 00 00 2C 圖3.1 指令CALL [0x30] 的執行過程 指令 RET 的執行過程 記憶體 ALU 0028 2B 00 00 30 CALL [0x30] (加法器…) 暫存器 PC=002C … … PC =00 00 00 70 PC=0070 2C 00 00 00 RET IR = 2C 00 00 00 (RET) 將LR 放回 PC LR = 00 00 00 2C 圖3.2 指令RET 的執行過程 多層次的副程式呼叫  參數的傳遞方法– 使用堆疊  避免上下層函數用到同一個暫存器,所產生的覆蓋現象。  將 LR 儲存到堆疊中,以免在下一層 CALL 返回位址被覆蓋掉。 範例3.12 的片段 f1: i

文档评论(0)

sunshaoying + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档