ImageVerifierCode 换一换
格式:DOC , 页数:23 ,大小:198.50KB ,
资源ID:1260826      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-1260826.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(崑山科技大学资讯工程系学生报告ia-32组合语言简介组合语言课程.doc)为本站会员(无敌)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

崑山科技大学资讯工程系学生报告ia-32组合语言简介组合语言课程.doc

1、1崑山科技大學資訊工程系學生報告IA-32組合語言簡介組合語言課程學期報告指導老師 : 邱正毅報告撰寫者們:四資工一 B學號: 4980E033 姓名:黃偉哲學號: 4980E039 姓名:馬以鴻中華民國九十九年六月二十六日2一、組合語言的定義組合語言是一種與硬體緊密相關的程式設計低階語言。組譯語言是機器語言便於記憶和理解的符號形式(又稱為助憶碼) 。組合語言的語句與機器語言 (機器語言操作碼)存在對應關係,但這並不意味著組合語言語句與機器操作對應。在 CISC (複雜指令集)結構 CPU 上,組合語言(或一個機器語言操作碼)可能被組譯器解譯成多個微指令 。因此有多少種CPU,甚至有多少單晶片

2、,就有多少種組合語言。組合語言不像其他大多數的程式設計語言一樣被廣泛用於程式設計;在今天的實際應用中,它通常被應用在底層硬體操作和高要求的程式優化的場合。驅動程式、嵌入式作業系統和實時執行程式都需要組合語言。二、組合語言與機器指令的關係組合語言是一種數字語言,電腦的處理器(CPU),特別能夠了解這種語言。與 IA-32 相容的處理器都可以了解一套共同的機器語言。組合語言是由許多簡短的助憶碼(Mnemonic) 寫成的敘述式所構成,這些助憶碼包括 ADD、MOV、SUB、和 CALL 等等。組合語言相對於機器語言,具有有一對一的關係,每一個組合語言的指令會對應到單一個機器語言指令。三、IA-32

3、 處理器的架構3.1 處理器架構圖3三個基本操作模式1.保護模式(Protected Mode)2.實體位址模式(Real-address Mode)3.系統管理模式(System Management Mode; SMM)3.2 操作模式介紹3.2.1 真實定址模式(real-address mode)簡介實體位址模式可以實作出 Intel 8086 處理器的程式執行環境,而且所實作的環境還具有一些額外的功能,例如切換到其他模式的功能。實體位址模式可以在 Windows 98 中使用,而且可以用來執行一個須要直接存取系統記憶體或硬體裝置的 MS-DOS 程式。在實體位址模式下執行的程式,可能

4、導致作業系統當機(無法再對使用者所下達的命令加以反應)。3.2.2 保護模式(protected mode)簡介保護模式是處理器最原始的狀態,在這種模式下,所有指令與功能都是可以使用的。此時程式會被分配得到各自的記憶體空間,此記憶體空間稱為區段(segments),且處理器會防止程式參考被指派的區段以外的記憶體。3.2.3 虛擬 8086 模式(virtual-8086 mode)簡介在保護模式下的同時,處理器還可以在安全的多工環境中,直接執行實體位址模式軟體,例如像是 MS-DOS 程式。換句話說,就算有一個 MS-DOS 程式當機,或者此程式要將資料寫入系統記憶體區域,也不會影響其他正在執

5、行的程式。Windows XP 可以同時執行多個各別的虛擬 8086 對話(session)。3.3 定址空間簡介在保護模式下,IA-32 處理器可以存取 4GB 的記憶體,此記憶體額度是 32 位元無號的二進位整數位址所能表示的不同記憶體位置的極限。實體位址模式的程式,最多則僅能存取 1MB 的記憶體範圍。如果處理器位於保護模式下,並且在虛擬 8086 模式下執行多個程式,則每個程式都可以擁有自己的 1MB 記憶體區域。43.4 暫存器簡介暫存器(Registers) 是在 CPU 內部的高速儲存空間,它是設計用來以遠高於一般記憶體的速度進行存取的動作。例如,當處理中的迴圈必須在速度上有最佳

6、化效果時,迴圈計數器會儲存於暫存器而不是變數中。四、IA-32 記憶體管理4.1 真實定址模式(real-address mode)下的記憶體管理方式簡介只能定址 1MB 的記憶體空間(0x000000xFFFFF)。 處理器一次只能執行一個程式。(可被中斷信號中斷)。 MS-DOS 作業系統在此模式執行。 Window 95, 98 可以啟動進入此模式。實際位址(PA)= 區段基底位址+ 有效位址。 區段基底位址:8086, 80286: 存放於區段暫存器內的值乘上 10h。 有效位址:透過指令中各種定址方式獲得。4.2 保護模式(protected mode)下的記憶體管理方式簡介能同時執

7、行多個程式,每個行程(執行中程式) 可分配到 4GB 的記憶體。 每個程式可以分配到自己所屬的記憶體區域,避免意外地存取到其他程式的程式碼與資料。 MS-Windows, Linux4.3 虛擬 8086 模式(virtual-8086 mode)下的記憶體管理方式簡介也是在保護模式中執行,但是會建立一個虛擬的 8086 機器。 此機器擁有:自己的 1MB 位址空間。五、常數定義方式55.1 整數常數(以微軟語法符號表示其語法 )或稱整數文數字(integer literal) 由一個非必要的前導正負號、一個或一個以上數字、一個用來代表數值基底的非必要字尾所組成,該基底稱為基數(radix)。

8、h:16 進制、q/o:8 進制、d:十進制、b: 二進制、r:編碼實數、t:十進位 (另一種表示法)、y:二進位( 另一種表示法 )、空白(通常表示十進制)Ex.: 2642o1Ah0Ah1100b5.2 實數常數(以微軟語法符號表示其語法 )兩種(1)十進位實數(2)編碼的實數(16 進位) 十進位實數signinteger.integerexponentsign +,-exponent E+,-integer Ex.:2.+3.0-44.2E+0526.E5實數常數中至少要有一個數字和小數點。5.3 字元常數6以單引號或雙引號加以圈圍住的單一字元。MASM 會以該字元的 ASCII 碼儲

9、存該字元於記憶體內。Ex.: A “d”5.4 字串常數以單引號或雙引號加以圈圍住的一系列字元(包含空白字元)。 Ex.:ABCX“Goodnight, Gracie”“This isnt a test”Say “Goodnight,” Gracie六、辨識元(Identifiers)定義規則程式設計師自訂的名稱常用於代表變數、常數、程序或程式碼的標籤(label)。 命名規則(1)字元數介於 1247(2)大小寫不分(但使用-Cp 命令於組譯器時,會區分)(3)第一個字元必須是英文字母或_或或?或$(4)不能與保留字相同 Ex.:var1, $first, _main, _1234, myf

10、ile, ?address七、指引(Directives)7.1 標出程式所包含之變數們(variables)所在區域的定義區塊(Defining Segments)指引.data .DATA 指引標記著程式中含有變數的區域。7.2 標出程式所包含之指令們(instructions)所在區域的定義區塊7(Defining Segments)指引.code .CODE 指引標記著程式中含有指令的區域。7.3 標出程式執行時所掌控之堆疊(stack)所在區域與大小的定義區塊(Defining Segments)指引.STACK 指引標記著程式中在執行時期保存堆疊的區域,並設定其大小:.stack

11、100h八、指令們(Instructions)8.1 Label資料標籤:尾端不能使用冒號。同一檔案中獨一無二。 count DWORD 100指令標籤:尾端要使用冒號。同一程序中獨一無二。 target: movax,bx8.2 NOP 指令稱為無作業指令。此指令花費程式一位元組的記憶體空間 用於調整程式碼使其能對齊偶數邊界。8.3 Intrinsic Data 種類MASM 定義了許多內建資料型別,每種內建資料型別都能描述一組數值,而這些值別可以指定給該型別的變數或運算式。每種型別的根本特性是其位元數的大小:8、16、32、48、64 和 80。其它特性(例如像是正負號、指標或浮點等等)

12、則是非必要的,而且這些特性主要是用於讓程式設計員能記住儲存在變數中的資料型別。大約有這些內建資料型別;BYTE SBYTE WORD SWORD DWORD SDWORD8FWORD QWORD TBYTE REAL4 REAL8 REAL108.4 定義位元組(bytes)資料BYTE定義位元組 SBYTE定義有號位元組, 例如-128 可用 DB 取代 BYTE 及 SBYTEDB 可定義位元組及有號位元組 若想於執行期才被設定初值,可使用問號初始設定子?取代初始設定值。Ex: value1 BYTE A ;字元常數value2 BYTE 0;最小的無號位元組value3 BYTE 255

13、;最大的無號位元組value4 SBYTE -128;最小的有號位元組value5 SBYTE +127;最大的有號位元組value6 BYTE ?;讓變數在執行期才被設定一;個值val01 DB 255;等同 val01 BYTE 255val02 DB -128;等同 val02 SBYTE -1288.5 定義字元組(words)資料替一個或多個 16 bits 整數建立記憶體空間。 例:word1 WORD 65535 ;最大無號數值word2 SWORD -32768 ;最小有號數值word3 WORD ? ;未初始化,無號 可用 DW 取代 WORD 及 SWORD例:val1 D

14、W 65535 ;等同 val1 WORD 65535val2 DW -32768 ;等同 val2 SWORD -327688.6 定義雙字元組(double words)資料9DWORD(定義雙字組)及 SWORD(定義有號雙字組)指引能替一個或多個的 32 位元整數配置記憶體空間:Val1 DWORD 12345678h ;無正負號Val2 SDWORD -2147483648h;有正負號Val3 DWORD 20 DUP(?) ;無號陣列8.7 定義字串資料的方式myList WORD 1,2,3,4,58.8 定義實數資料的方式REAL4 用於定義四個位元組單精準度實數(single

15、-precision real)變數。REAL8 則用於定義 8 位元組倍精準度實數(double extended-precision real)變數;REAL10 定義的是十個位元延伸倍精準度實數(double extended-precision real)變數。其中的每個定義都需要一個或多個的實數常數初始設定子:rVal1 REAL4 -1.2rVaL2 REAL8 3.2E-260rVal3 REAL10 4.6E+4096ShortArray REAL4 20 DUP(0.0)8.9 定義符號常數的指引們8.9.1 Equal-Sign 指引等號指引(equal-sign dire

16、ctive)能將符號名稱與整數運算式聯結在一起,其語法是:Name = expression 名稱 = 運算式正常情況下,上述語法中的運算式是一個 32 位元整數值。當程式在組譯時,所有上述語法中名稱出現的地方,在組譯器的前置處理過程,都會被運算式所取代。例如,如果組譯器讀到下列幾列:COUNT = 500mov ax,COUNT它將產生並且組譯下列敘述:mov ax,5008.9.2 計算陣列與字串大小10ListBYTE 10,20,30,40ListSize = 4但是如果該陣列日後需要修改其大小。那麼人工估算的方式就不是一個好作法。可以藉著將 List 的位移值減去現行位記數器所取得的

17、值,可以計算得到 ListSize:ListBYTE 10,20,30,40ListSize = ($ - list)8.9.3 EQU 指引將符號名稱與整數運算式或某些任意文字連接起來。 語法(三種)name EQU expression expression 是有效的整數運算式。name EQU symbol symbol 是既有的符號名稱,已被用= 或 EQU 定義過。name EQU 任何文字皆可在內。 用 EQU 定義過的符號,不能重新定義新值給該符號。EX:定義 PI 常數 PIEQU定義字串,其使用值 0 結束。pressKeyEQU :.dataprompt BYTE pressKey定義一個用於計算在 10x10 的整數矩陣中的單元數量的符號。matrix1 EQU 10*10matrix2 EQU :

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报