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

正文內(nèi)容

匯編語言語法和dos功能調(diào)用-文庫吧

2025-04-20 04:25 本頁面


【正文】 與某一數(shù)據(jù)項第一字節(jié)相對應的標識符 。 變量的 3個屬性: ① 段地址:變量所在段的段地址; ② 偏移地址:變量所在段內(nèi)的偏移地址; ③ 類型:所定義的每個變量所占據(jù)的字節(jié)數(shù) 。 標號 標號 可執(zhí)行指令語句 地址的符號表示 , 即用標識符來表示地址 。 標號的 3個屬性: ① 段地址:與標號對應的指令首字節(jié)所在的段地址 。 ② 偏移地址:與標號對應的指令首字節(jié)所在的偏移地址 。 ③類型:標號的類型屬性有兩種: NEAR和 FAR類型。 數(shù)據(jù)定義偽指令語句 共有五條: DB、 DW、 DD、 DQ和 DT, 分別用來定義字節(jié) 、 字 、雙字 、 8字節(jié)和 10字節(jié) 。 指令格式: 變量名 助記符 操作數(shù) 1,操作數(shù) 2,? 操作數(shù) n ;注釋 變量名 助記符 n DUP( 操作數(shù) 1, 操作數(shù) 2,? 操作數(shù) n) ;注釋 注 : 操作數(shù)可以是常數(shù)或表達式 , 變量名 ,注釋可有可無 。 例 操作數(shù)是常數(shù) 、 表達式 、 字符串數(shù)據(jù)的定義 DATA1 DB 10H, 52H DATA2 DW 1122H, 34H DATA3 DD 5*20H,0FFEEH DATA4 DB ‘ HELLO’ 例 操作數(shù)用 “ ? ” 定義不確定值的 變量 , 用 DUP來定義重復變量 , 不確定 值的變量一般用作保留存儲空間 , 以 便存放運算結(jié)果 。 DATA1 DB ? DATA2 DW 0D55H, ? DATA3 DB 5 DUP( 0) DATA4 DW 10 DUP( ? ) DATA5 DB 4 DUP( 1, 2 DUP( 20) 例 BUFFER DW 3,4,$+3 設(shè) BUFFER的偏移地址為 0088H,則匯編后如下圖所示: 標識符賦值與解除偽指令語句 共有 4條:等值偽指令語句 EQU 等號偽指令語句 ? =? 解除偽指令語句 PURGE 別名定義偽指令語句 LABEL ( 1) 等值偽指令 EQU語句 指令格式: 標識符 EQU 操作數(shù) 例 DATA EQU 100 DATA1 EQU DATA+ 2 CI EQU ADD ( 2) 等號偽指令語句 ? =? 指令格式: 標識符 =操作數(shù) 例 DATA =100 DATA1 = DATA +10 SOURCE=BX+ SI MOV AX, [SOURCE] SOURCE=BX MOV CX, [SOURCE] 注:“=” 允許重復定義,而 EQU一經(jīng)定義不再重新定義。 ( 3) 解除偽指令語句 PURGE 指令格式: PURGE 標識符 1, 標識符 2, … 標識符 n ( 4) 別名定義偽指令語句 格式:別名 LABEL 類型屬性 LABEL:偽指令助記符 , 不可缺省 。 例 定義變量的別名 DATAB LABEL BYTE DATAW DW 1234H, 5678H DISF LABEL FAR DISN: MOV AX, [SI] 段定義偽指令語句 因 8086/8088 CPU的存儲器是分段的 ,這就需要有段定語 句。 與段有關(guān)的偽指令有: SEGMENT、 ENDS和 ASSUME,含義分 別是 段開始 、 段結(jié)束 、 指定段寄存器 。 ( 1)段結(jié)構(gòu)定義偽指令 格式: 段名 SEGMENT[定位類型][組合類型][’類別‘] ┇ 段名 ENDS 從段名代表的段基值開始定義一個段。其中的定位類型、組合類型和 ′ 類別 ′ 一般都可省略,若不省略時各項的順序不能變。 ① 定位類型: 連接時用于指定該段應開始于什么樣的物理地址??蛇x擇下列 4種之一: BYTE: 從當前可用的字節(jié)地址 XXXX XXXX XXXX XXXX XXXX(任一地址 )開始; WORD: 從當前可用的字地址 XXXX XXXX XXXX XXXX XXX0(偶數(shù)地址 )開始; PARA(缺省 ): 從當前可用的節(jié)地址 XXXX XXXX XXXX XXXX 0000(16的倍數(shù) )開始; PAGE: 從當前可用的頁地址 XXXX XXXX XXXX 0000 0000(256的倍數(shù) )開始。 其中, 1節(jié)( paragraph) 為 16字節(jié), 1頁為 16節(jié)即 256字節(jié) 。 ② 組合類型: 連接時用于指定同名的各段之間的組合方式??蛇x擇下列 6種之一: PUBLIC STACK COMMON MEMORY AT表達式 NONE(缺省 ) 若省略組合類型或說明為 NONE類型,則表示各個段不組合,各有自己的段基值。 對堆棧段,必須用 STACK類型說明,不能省略。 ③ ′ 類別 ′ : 是要將組合后的各段按 ′ 類別 ′ 分類存放,同類別的段 將被相鄰地放在一起。 ′ 類別 ′ 是由用戶定義的、用一對引號括起來的 長度不超過 40個字符的名字 (標識符 )。 SEGMENT和 ENDS這兩個偽指令總是成對出現(xiàn),二者前面的段名一致。二者之間的刪節(jié)部分,對數(shù)據(jù)段、附加段及堆棧段,一般是符號、變量定義等偽指令。對于代碼段則是指令及偽指令。 此外,還必須明確段和段寄存器的關(guān)系,這可由ASSUME語句來實現(xiàn)。 (2) 段分配偽指令 ASSUME 該語句必須出現(xiàn)在有關(guān)的變量及標號使用之前, 定義當前有效的 4個邏輯段 ,用于指定程序中所定義的段與各段寄存器之間的對應關(guān)系,指示匯編程序在匯編過程中如何確定指令隱含使用的段寄存器。指定某段 (用段名標識 )中的變量、標號等數(shù)據(jù)項由哪個段寄存器尋址。 ASSUME語句是偽指令,它不能給段寄存器傳送段基值,只能指定段與段寄存器之間的對應關(guān)系 。該偽指令的作用時間也是在匯編階段,不是在程序的執(zhí)行階段。 在程序設(shè)計中,一般 ASSUME語句在代碼段中位于所有指令語句之前。 注意 :把段基值裝入段寄存器這一個過程是在程序執(zhí)行階段完成的。 即便程序中使用了 ASSUME語句,如果在程序執(zhí)行階段各段寄存器沒有裝入正確的段基值,那么仍然不能正確的訪問內(nèi)存中的數(shù)據(jù)。 段寄存器的裝入 ( 1) CS段寄存器的裝入 CS段寄存器和 IP指令指針的初始化是由操作系統(tǒng)來完成的 。 當用戶向操作系統(tǒng)提交一個程序時 , 操作系統(tǒng)會自動把程序中第一條指令的邏輯地址裝入到 CS和 IP中 。 在這之后 ,CPU就會從這條指令開始執(zhí)行 , 并且不斷修改 IP中的內(nèi)容使它指向下一條指令 。 ( 2) DS、 ES 、 SS段寄存器的裝入 和 CS段寄存器的裝入方式不同 , DS、 ES的段基值裝入必 須由程序員使用 MOV指令在自己的程序中來完成 。 例子見教材 P138, 注意例子 4- 1中的 ASSUME語句 。 對 DS、 ES段寄存器的初始化指令一般在代碼段的最開 始 , 因為以后的指令可能會頻繁的訪問數(shù)據(jù)段或附加段的數(shù) 據(jù) , 只有先保證段寄存器中的段基值正確 , 后面的數(shù)據(jù)操作 才是正確的 。 ASSUME 段寄存器名 :段名, 段寄存器名 :段名 ... 告訴匯編程序用 SEGMENT偽操作定義過的 段 的 段地址 將要存放在哪個 段寄存器 中。 但真正把段地址裝入段寄存器(稱為段初始化)的操作需要由程序員自己完成 MOV AX,DATA MOV DS,AX MOV ES,AX 這些語句實現(xiàn)了 將段基址裝入段寄存器 。 如程序中用到堆棧段,也需裝入實際的初值。而 代碼段 不需要用戶裝 , 由 初始化程序 裝入 。 過程定義偽指令語句 在 MASM中,過程的含義和子程序是一樣的,一個過程可以被其它程序所調(diào)用,這個過程的最后一條指令,一般是返回指令。 過程定義偽指令的格式為: 過程名 PROC NE
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1