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

正文內(nèi)容

第3章匯編語言程序格式-在線瀏覽

2024-12-14 13:41本頁面
  

【正文】 ASSUME 段寄存器:段名 [,段寄存器名:段名 , ...] 作用 : ? 通知 MASM用指定的段寄存器來尋址對應(yīng)的邏輯段,即建立段寄存器與段的缺省關(guān)系 ? 在明確了程序中各段與段寄存器之間的關(guān)系后,匯編程序會根據(jù)數(shù)據(jù)所在的邏輯段,在需要時自動插入段超越前綴。 14 ? ASSUME偽指令并不為段寄存器設(shè)定初值,所以在代碼段中還必須把段地址裝入相應(yīng)的段寄存器中。 MOV AX, DATA MOV DS, AX ? 如果程序中有堆棧段,也需要把地址裝入 SS中 ? 代碼段不需要這樣做,代碼段的這一操作是在程序初始化時完成的。 用微型模型編寫匯編語言程序時,所有的段地址寄存器都被設(shè)置為同一值,這意味著代碼段、數(shù)據(jù)段、堆棧段都在同一個段內(nèi),不大于 64KB;訪問操作數(shù)或指令都只需要使用 16位偏移地址。 ? S mall 小型模型是最常用的一種模型。 這里的數(shù)據(jù)段指數(shù)據(jù)段、堆棧段和附加段的總和,它們共用同一個段基址,總長度不超過64KB;訪問操作數(shù)或指令都只需要使用 16位偏移地址;代碼和數(shù)據(jù)都是近訪問的,小模型下程序的最大長度為 128KB 18 ? C ompact 緊湊模型適合于數(shù)據(jù)量大但代碼量小的程序。 代碼是近訪問的,而數(shù)據(jù)則可為遠訪問的。中型模式的代碼段可以超過 64KB,有多個;但數(shù)據(jù)段只能有一個不大于 64KB的段。 ? L arge 大型模式允許的代碼段和數(shù)據(jù)段都有多個,都可以超過 64KB;但全部的靜態(tài)數(shù)據(jù)(不能改變的數(shù)據(jù))仍限制在 64K字節(jié)內(nèi) .數(shù)據(jù)和代碼都可以遠訪問。 ? F lat 平展模型用于創(chuàng)建一個 32位的程序,它只能運行在 32位 x86 CPU上。 ? DOS下編程可選擇前六種模型,一般可以選用SMALL模型, TINY模式產(chǎn)生 COM程序,其他模型產(chǎn)生 EXE程序, FLAT模型只能用于 32位程序。 高級語言接口選項是指該匯編語言程序作為某一種高級語言程序的過程而為該高級語言程序調(diào)用時,應(yīng)該用C等來說明。 堆棧距離選項可用 NEARSTACK或FARSTACK來說明,基中 NEARSTACK是指堆棧段和數(shù)據(jù)段組合到一個 DGROUP段中,而FARSTACK是指堆棧段和數(shù)據(jù)段并不合并。采用簡化段定義偽指令前,需有 .model語句。它用于定義具有初值的變量,當然也允許定義無初值的變量。 .const偽指令用于建立只讀的常量數(shù)據(jù)段(段名:CONST) .CODE [段名 ] 代碼段偽指令 .code創(chuàng)建一個代碼段,它的參數(shù)指定該代碼段的段名。 23 (3)與簡化段定義有關(guān)的預(yù)定義符號 使用簡化段定義,各段名稱和其他用戶所需的信息可以使用 MASM預(yù)定義符號,例如: data表示由 .data等定義的數(shù)據(jù)段的段名。offset后可以跟段組中的某個段名,表示該段最后一個字節(jié)后面字節(jié)相對于段組的偏移地址 25 程序開始和結(jié)束偽操作 ? 程序開始可用 Name和T ITLE作為模塊的名字。 TITLE的格式: TITLE 標題 TITLE偽操作可指定列表文件中的每一頁上打印的標題 ? END表源程序結(jié)束的偽操作,格式為: END [標號 ] 用來指示匯編程序 MASM到此結(jié)束匯編過程??蛇x的標號用于指定程序開始執(zhí)行點,連接程序?qū)?jù)此設(shè)置 CS : IP值 26 ? 操作 。 如果程序采用了 .startup偽指令就不需要再用 “ end 標號 ” 指明開始執(zhí)行點 , 但還要有 end偽指令 ? .EXIT用來產(chǎn)生退出程序并返回操作系統(tǒng)的代碼 ,其格式: .EXIT [返回參數(shù) ] 可選參數(shù)是一個返回的數(shù)碼,通常用 0表示沒有錯誤。 LENGTH SIZE WIDTH MASK 2 PTR OFFSET SEG TPYE THIS : 3 HIGE LOW 4 * / MOD SHL SHR 5 + 6 EQ NE GT LT GE LE 7 NOT 8 AND 9 OR XOR 10 SHORT 建議采用圓括號 “ ( ) ” 顯式表達 , 它可以極大地提高程序的可閱讀性 45 ? 匯編語言程序中,指令參數(shù)還有地址型,它的主要形式是標號和名字(變量名、段名、過程名等) ? 硬指令的操作數(shù)有存儲單元;存儲單元就應(yīng)該用地址型參數(shù)(存儲器操作數(shù))表達 46 變量定義偽指令 ? 變量定義( Define)偽指令為變量申請固定長度的存儲空間,并可同時將相應(yīng)的存儲單元初始化 變量名 偽指令助記符 初值表 變量定義偽指令最常使用 47 變量名 ? 變量名為用戶自定義標識符,表示初值表首元素的邏輯地址;用這個符號表示地址,常稱為符號地址 ? 變量名可以沒有。a39。ABC39。此處 X表示它的第 1個數(shù)據(jù), 故 AL←39。 inc X+1 ?,F(xiàn)在 Y這個字符串成為 39。 52 定義字單元偽指令 DW DW偽指令用于分配一個或多個字單元,并可以將它們初始化為指定值 初值表中每個數(shù)據(jù)一定是字量( Word),一個字單元可用于存放任何 16位數(shù)據(jù): 一個段地址 一個偏移地址 兩個字符 0~ 65535之間的無符號數(shù) - 32768~+ 32767之間的帶符號數(shù) 53 data segment ;數(shù)據(jù)段 count dw 8000h,?,39。 maxint equ 64h number dw maxint array dw maxint dup(0) data ends 54 字變量和字常量的定義: WNUM EQU 5678H 。定義 COUNT變量,假設(shè)在數(shù)據(jù)段的偏移地址為 10H 字變量和字常量的應(yīng)用: MOV AX,[BX+SI+WNUM] 。 MOV AX,[0010H] MOV AX,[SI+COUNT] 。 MOV AX,[SI+10H] LEA BX,COUNT 。 MOV BX,0010H
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1