组合语言课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《组合语言课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组合 语言 课件
- 资源描述:
-
1、第 3 章、組合語言3.1 基本範例3.2 陣列存取3.3 副程式呼叫3.4 進階語法3.5 實務案例:IA32 的組合語言CPU0 的組合語言前置表示法CPU0 的組合語言一律採用目標在前的撰寫方式。範例ADD R1,R2,R3 相當於 R1=R2+R33.1 基本範例資料移動基本數學運算模擬條件判斷模擬迴圈一個完整範例-從 1 加到 10資料移動C 語言組合語言以組合語言移動記憶體資料基本數學運算模擬條件判斷模擬迴圈一個完整範例-從 1 加到 103.2 陣列存取字串複製(指標版)字串複製(索引版)整數陣列的複製字串複製(指標版)字串複製(索引版)整數陣列的複製3.3 副程式呼叫單層次的副
2、程式呼叫參數的傳遞方法 使用暫存器多層次的副程式呼叫參數的傳遞方法 使用堆疊單層次的副程式呼叫參數的傳遞方法 使用暫存器指令 CALL 0 x30 的執行過程(1)PC=PC+4;在指令擷取之後 PC 從 28 變為 32。(2)LR=PC;將 PC 存入到連結暫存器 LR 中。(3)PC=PC+30記憶體=CALL 0 x302B 00 00 30ALU(加法運算)暫存器IR=2B 00 00 30(CALL 0 x30)PC=00 00 00 2C00 00 00 5C(3)LR=00 00 00 2C(2)(1)0028002C005C圖 3.1 指令CALL 0 x30 的執行過程指令
3、 RET 的執行過程記憶體0028CALL 0 x302B 00 00 30PC=0070ALU(加法器)暫存器IR=2C 00 00 00(RET)PC=00 00 00 70LR=00 00 00 2C 將 LR 放回 PC2C 00 00 00PC=002CRET圖 3.2 指令RET 的執行過程多層次的副程式呼叫參數的傳遞方法 使用堆疊避免上下層函數用到同一個暫存器,所產生的覆蓋現象。將 LR 儲存到堆疊中,以免在下一層 CALL 返回位址被覆蓋掉。f1:POP R2 取得堆疊中的參數 PUSH LR 保存 LRST R2,tLD R3,ptPUSH R3CALL f2ST R1,bA
4、DD R1,R1,R1POP LR 恢復 LRRET 返回t:RESW 1b:RESW 1pt:WORD tint f1(int t)int b=f2(&t);return b+b;範例 3.12 的片段3.4 進階語法定址範圍的問題初始值Literal:值接將常數嵌入到指令中假指令LTORG:以 LTORG 提早展開 LiteralEQU:符號定義ORG:重設位址運算式分段定址範圍的問題避免將巨大陣列放在中間,應該放在最後面,或者用指標的方式解決巨大陣列的問題。初始值範例 3.14 中的 EOF,oDev 等變數都具有初始值。Literal 直接將常數嵌入到指令中 以 LTORG 提早展開
展开阅读全文