freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第3章匯編語言程序格式(已修改)

2024-10-27 13:41 本頁面
 

【正文】 0 第 3章 匯編語言程序格式 ? 匯編程序功能 ? 偽操作 ? 匯編語言程序格式 ? 匯編語言程序的上機(jī)過程 1 匯編程序功能 ? 計(jì)算機(jī)是通過執(zhí)行指令序列來解決問題的。計(jì)算機(jī)的指令系統(tǒng)就是指該計(jì)算機(jī)能夠執(zhí)行的全部指令的集合。 ? 指令的一般格式: ? [標(biāo)號(hào): ] 操作符 OPD, OPS [;注釋 ] ? 算術(shù)運(yùn)算和位操作類指令的部分單操作數(shù)指令的格式: ? [標(biāo)號(hào): ] 操作符 OPD [;注釋 ] 2 匯編語言程序的建立及開發(fā)過程 編輯 文本編輯器,如 源程序:文件名 .asm 匯編 匯編程序,如 目標(biāo)模塊:文件名 .obj 連接 連接程序,如 可執(zhí)行文件:文件名 .exe 調(diào)試 調(diào)試程序,如 應(yīng)用程序 錯(cuò)誤 錯(cuò)誤 錯(cuò)誤 錯(cuò)誤 3 匯編程序的主要功能 ? 檢查源程序 ? 測(cè)出源程序中的語法錯(cuò)誤,并給出出錯(cuò)信息 ? 產(chǎn)生源程序的目標(biāo)程序,并可給出列表文件(同時(shí)列出匯編語言和機(jī)器語言的文件,稱為 LST文件) ? 展開宏指令 4 偽操作 ? 硬指令 ——使 CPU產(chǎn)生動(dòng)作、并在程序運(yùn)行期間由計(jì)算機(jī)執(zhí)行的語句。 ? 偽指令 ( Directive) ——不產(chǎn)生 CPU動(dòng)作、在程序執(zhí)行前由匯編程序處理的說明性語句,例如,數(shù)據(jù)說明、變量定義等等。 ? 偽指令與具體的處理器類型無關(guān),但與匯編程序的版本有關(guān)。 5 匯編語言語句實(shí)例 MOV CX,0 。傳送指令,具有 2個(gè)操作數(shù) DELAY: NOP ??詹僮髦噶?,沒有操作數(shù),帶有標(biāo)號(hào) LOOP DELAY 。循環(huán)指令,標(biāo)號(hào) DELAY說明轉(zhuǎn)移位置 BUFFER DB 1,2,3,4,5,6,7 。數(shù)據(jù)定義偽指令,在主存中開辟 7個(gè)連續(xù)的字節(jié)單元,初值依次為 1~ 7, BUFFER表示首地址 6 段定義偽操作 存儲(chǔ)器的物理地址是由段地址和偏移地址組合而成的,匯編程序在把源程序轉(zhuǎn)換為目標(biāo)程序時(shí),必須確定標(biāo)號(hào)和變量的偏移地址,并且需要把有關(guān)信息通過目標(biāo)模塊傳送給連接程序,以便連接程序把不同的段和模塊連接在一起,形成一個(gè)可執(zhí)行程序。為此需要用段定義偽操作,格式如下: 段名 SEGMENT [定位 ] [組合 ] [使用 ] [39。類別 39。 ] ... 。對(duì)數(shù)據(jù)段 ,附加段和堆棧段 ,一般是存儲(chǔ)單元的定 ... 。義 ,分配等偽操作,對(duì)代碼段則是指令及偽操作. 段名 ENDS 7 ? 完整段定義由 SEGMENT和 ENDS這一對(duì)偽指令實(shí)現(xiàn), SEGMENT偽指令定義一個(gè)邏輯段的開始,ENDS偽指令表示一個(gè)段的結(jié)束 ? 段定義指令后的 4個(gè)關(guān)鍵字用于確定段的各種屬性,堆棧段要采用 stack組合類型,代碼段應(yīng)具有 ‘ code’類別,其他為可選屬性參數(shù) ? 如果不指定,則采用默認(rèn)參數(shù);但如果指定,注意要按照上列次序。 8 (1)定位類型:指定邏輯段在主存儲(chǔ)器中的邊界,可為: BYTE 該段可以從任何地址開始,這樣偏移地址可能不是 0 WORD 該段必須從字的邊界開始,即段起始地址必須為偶數(shù) DWORD 該段必須從雙字的邊界開始,即段起始地址的最低兩個(gè)十六進(jìn)制數(shù)位必須為 4的倍數(shù) PARA 該段的起始地址必須從小段邊界開始,即段起始地址的最低 16進(jìn)制數(shù)必須為 0 9 PAGE 該段必須從頁的邊界開始,即段的起始地址的最低兩個(gè)十六進(jìn)制數(shù)位必須為 0 ? 簡(jiǎn)化段定義偽指令的代碼和數(shù)據(jù)段默認(rèn)采用WORD定位,堆棧段默認(rèn)采用 PARA定位 ? 完整段定義偽指令的默認(rèn)定位屬性是 PARA,其低 4位已經(jīng)是 0,所以默認(rèn)情況下數(shù)據(jù)段的偏移地址從 0開始 10 (2)組合類型說明程序連接時(shí)的段合并方法,即指定多個(gè)邏輯段之間的關(guān)系,可為: PRIVATE 本段為私有段,與其他段沒有邏輯關(guān)系,在連接時(shí)不與其他段合并,每段都有自己的段地址。這是完整段定義偽指令默認(rèn)的段組合方式 PUBLIC 連接程序把本段與所有同名同類型的其他段相鄰地連接在一起,然后為所有這些段指定一個(gè)共同的段地址,也就是合成一個(gè)物理段。這是簡(jiǎn)化段定義偽指令默認(rèn)的段組合 STACK 本段是堆棧的一部分,連接程序?qū)⑺?STACK段按照與 PUBLIC段的同樣方式進(jìn)行合并。這是堆棧段必須具有的段組合 11 (3)使用類型是支持 32位段而設(shè)置的屬性,用來說明使用 16位尋址方式還是 32位尋址方式 對(duì)于 16位 x86 CPU來說,它默認(rèn)是 16位段,即 USE16 而對(duì)于匯編 32位 x86 CPU指令時(shí),它默認(rèn)采用 32位段,即 USE32;但可以使用 USE16指定標(biāo)準(zhǔn)的 16位段 ? 編寫運(yùn)行于實(shí)地址方式( 8086工作方式)的匯編語言程序,必須采用 16位段 12 (4)類別在引號(hào)中給出連接時(shí)組成段組的類型名。當(dāng)連接程序組織段時(shí),并不能把相同類別的段合并起來,但可將所有的同類別段相鄰分配 ? 段類別可以是任意名稱,但必須位于單引號(hào)中 ? 大多數(shù) MASM程序使用 39。code39。、 39。data39。和 39。stack’來分別指名代碼段、數(shù)據(jù)段和堆棧段,以保持所有代碼和數(shù)據(jù)的連續(xù) 13 此外 , 必須明確段與段寄存器的關(guān)系 ,可用 ASSUME偽操作來實(shí)現(xiàn) 。 格式: ASSUME 段寄存器:段名 [,段寄存器名:段名 , ...] 作用 : ? 通知 MASM用指定的段寄存器來尋址對(duì)應(yīng)的邏輯段,即建立段寄存器與段的缺省關(guān)系 ? 在明確了程序中各段與段寄存器之間的關(guān)系后,
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1