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

正文內(nèi)容

第4章16位和32位微處理器的指令系統(tǒng)及匯編語言編程-全文預(yù)覽

2024-11-09 08:09 上一頁面

下一頁面
  

【正文】 CALL OPD。 當(dāng)設(shè)計(jì)一個比較復(fù)雜的程序時 , 將程序劃分為若干個相對獨(dú)立的模塊 , 確定各模塊的入口及出口參數(shù) ,為各模塊分配不同的名字 , 對每一個模塊編制獨(dú)立的程序段 ( 即子程序 ) , 最后將這些子程序根據(jù)調(diào)用關(guān)系連成一個整體 。 LEA BX, BUF MOV CX, N ; 初始化部分 MOV AX, 0 CYCLE: CMP BYTE PTR[BX], 0 JGE NEXT ; 工作部分 INC AX NEXT: INC BX DEC CX ; 修改部分 JNZ CYCLE ; 控制部分 循環(huán)程序設(shè)計(jì) ② 正計(jì)數(shù) 先將 0送入循環(huán)計(jì)數(shù)器中 , 每循環(huán) 1次 ,計(jì)數(shù)器加 1, 直到循環(huán)計(jì)數(shù)器中的內(nèi)容與循環(huán)次數(shù) N相等時結(jié)束循環(huán) 下面將例 【 432】 的代碼段改寫為用CX進(jìn)行正計(jì)數(shù)來說明這個問題 LEA BX, BUF MOV CX, 0 ; 初始化部分 MOV AX, 0 CYCLE:CMP BYTE PTR[BX], 0 JGE NEXT ; 工作部分 INC AX NEXT: INC BX INC CX ; 修改部分 CMP CX, N ; 控制部分 JNZ CYCLE 循環(huán)程序設(shè)計(jì) 二、條件控制 有些情況下 , 循環(huán)次數(shù)無法事先確定 , 但它與問題中的某些條件有關(guān) , 這些條件可以通過指令來測試 , 如果測試的結(jié)果滿足循環(huán)條件 , 則繼續(xù)循環(huán) , 否則結(jié)束循環(huán) 例 【 433】 編程統(tǒng)計(jì) AX中 1的個數(shù)。 ④ 控制部分:為了能在正確的時機(jī)退出循環(huán),要有出口測試,控制部分是用來控制循環(huán)程序是繼續(xù)執(zhí)行還是終止。 這四部分的作用是: ① 初始化部分 , 又稱循環(huán)的預(yù)置部分 。 段內(nèi)轉(zhuǎn)移指令只改變指令指針 IP的內(nèi)容 , 而段間轉(zhuǎn)移指令則要同時改變指令指針 IP和代碼段寄存器的內(nèi)容 。 轉(zhuǎn)移指令分條件轉(zhuǎn)移指令和無條件轉(zhuǎn)移指令兩大類 一、條件轉(zhuǎn)移 語句格式: [標(biāo)號 :]操作符 短標(biāo)號 功能:如果條件滿足,則 (IP)+位移量→ IP 順序與分支程序的設(shè)計(jì) 在轉(zhuǎn)移指令中 , 位移量為當(dāng)前 (IP)到轉(zhuǎn)移目的地址處的字節(jié)距離 。 順序與分支程序的設(shè)計(jì) 順序型結(jié)構(gòu)程序的特征是在程序的指令中無轉(zhuǎn)移指令 , 計(jì)算機(jī)從程序的第一條指令開始順序執(zhí)行 , 直到程序的最后一條指令為止 例 【 429】 在一個表中存放著 0到 9十個數(shù)字的立方值 ,編程從鍵盤輸入 0到9之間的任意一個數(shù) ,查表找出這個數(shù)的立方值 順序與分支程序的設(shè)計(jì) 有分支控制的程序結(jié)構(gòu)稱為分支型結(jié)構(gòu) ( 或稱選擇結(jié)構(gòu) ) 。 如果是變量 ,其類型值由變量的類型確定 , 某一變量類型的類型值和該變量在內(nèi)存中所占的字節(jié)數(shù)相同 ① 取變量所含的數(shù)據(jù)存儲單元個數(shù)運(yùn)算符LENGTH, 格式: LENGTH 變量 。 若改為 MOV AX, ES:[SI], 則從附加數(shù)據(jù)段中取數(shù)據(jù) 2.跨段前綴 “ :” 屬性分離運(yùn)算符可分離出變量、標(biāo)號的段、偏移地址及類型的屬性值。 關(guān)系運(yùn)算的結(jié)果是兩個特殊的量 , 若關(guān)系不成立 , 則結(jié)果為 0;否則為 0FFFFH 地址表達(dá)式的值是段內(nèi)偏移地址 , 它具有段 、 偏移地址及類型三個屬性 。 可利用括號改變一個表達(dá)式某一部分的優(yōu)先級 。 注意不能使用匯編語言的保留字如算術(shù)運(yùn)算指令名 ADD、 SUB等做標(biāo)識符 : ① 數(shù)值表達(dá)式 ② ASCII字符串 ( 只有用 DB定義變量時 , 才允許字符串長度超過 2個字符 ) ③ 地址表達(dá)式 。 它表示變量在某段的相對位置 , 也就是我們所說的偏移地址 ( 或有效地址 ) EA ③ 變量的類型 。 readme 匯編語言中的常量、變量及標(biāo)號 二、變量 在匯編語言中 , 變量是一個數(shù)據(jù)單元的名字 , 即數(shù)據(jù)存放地址的符號表示 。 偽指令 EQU和等號 “ =”可用來實(shí)現(xiàn)將數(shù)值常量定義成符號常量 匯編語言中的常量、變量及標(biāo)號 表 414 8086/8088宏匯編語言中所使用的常量 常量分類 格式 X的取值 舉例 二進(jìn)制常量 XX… XB 0或 1 01000001B 八進(jìn)制常量 XX… XO XX… XQ 0~ 7 1234Q 十進(jìn)制常量 XX… X XX… XD 0~ 9 123, 123D 十六進(jìn)制常量 XX… XH 0~ 9 A~ F 1234H, 0A12FH 字符常量 39。 在8086/8088宏匯編語言中可使用的常量見表 414。 格式: ORG 數(shù)值表達(dá)式 功能:將匯編地址計(jì)數(shù)器設(shè)置成數(shù)值表達(dá)式的值 。 在一個源程序中 ,往往包含了多個段 , 匯編程序在將該源程序匯編成目標(biāo)程序時 , 每遇到一個新段 , 就為該段分配一個初值為 0的匯編地址計(jì)數(shù)器 , 然后 , 再對該段中的語句匯編 。 如果你省略堆棧段定義 , 當(dāng)你的程序使用堆棧時 , 系統(tǒng)會自動建立堆棧 。 段的定義可以嵌套 , 但不能交叉 。指令 MOV AX,N在匯編時用 40代替 N變成 MOV AX, 40 偽指令 ② 等號偽指令 格式:符號名 =表達(dá)式 功能:該語句的功能和 EQU相似 , 不同的是等號偽指令能對所定義的符號名再重新定義 , 當(dāng)使用等號語句連續(xù)定義同一符號名時 , 以最后一次定義的值為準(zhǔn) 偽指令 三 、 段定義偽指令 格式: 段名 SEGMENT [定位方式 ][組合方式 ][ 39。而可執(zhí)行指令是在程序執(zhí)行期間被 CPU譯碼并執(zhí)行的 偽指令 ② 匯編結(jié)束后偽指令就完成任務(wù),在程序執(zhí)行期間不再考慮它,因此偽指令不翻譯成目標(biāo)碼。若 DF=0,則每次操作后, SI、 DI自動增量(字節(jié)操作加 字操作加 2);若 DF=1,則每次操作后, SI、 DI自動減量(字節(jié)操作減 字操作減 2),使之指向下一個元素 8086指令系統(tǒng) 五、字符串操作指令 (續(xù) 4) 當(dāng)指令帶有重復(fù)前綴時 , 則指令重復(fù)執(zhí)行 , 每執(zhí)行一次 ,就檢查一次重復(fù)條件是否成立 , 如成立 , 則繼續(xù)重復(fù);否則終止重復(fù) , 執(zhí)行后續(xù)指令 ① REP:重復(fù) , 即無條件重復(fù) CX寄存器中指定的次數(shù) ② REPE/REPZ:相等 /為 0時重復(fù) , 即 ( CX) ≠ 0( 重復(fù)次數(shù)還未為 0) 同時 ZF=1( 比較時相等 ) 時重復(fù) , 否則 , 重復(fù)終止 。轉(zhuǎn)移指令共有 19條,具體見表 49 8086指令系統(tǒng) 四、轉(zhuǎn)移指令 表 49 轉(zhuǎn)移指令 類別 指令名稱 操作碼 轉(zhuǎn)移條件 簡單條件轉(zhuǎn)移 相等 /等于 0轉(zhuǎn) JE/JZ ZF=1 不相等 /不等于 0轉(zhuǎn) JNE/JNZ ZF=0 為負(fù)轉(zhuǎn) JS SF=1 為正轉(zhuǎn) JNS SF=0 溢出轉(zhuǎn) JO OF=1 未溢出轉(zhuǎn) JNO OF=0 8086指令系統(tǒng) 四、轉(zhuǎn)移指令 (續(xù) 1) 表 49 轉(zhuǎn)移指令 類別 指令名稱 操作碼 轉(zhuǎn)移條件 簡單條件轉(zhuǎn)移 進(jìn)位位為 1轉(zhuǎn) JC CF=1 進(jìn)位位為 0轉(zhuǎn) JNC CF=0 偶轉(zhuǎn)移 JP/JPE PF=1 奇轉(zhuǎn)移 JNP/JPO PF=0 8086指令系統(tǒng) 四、轉(zhuǎn)移指令 (續(xù) 2) 表 49 轉(zhuǎn)移指令 類別 指令名稱 操作碼 轉(zhuǎn)移條件 無符號數(shù)條件轉(zhuǎn)移 高于轉(zhuǎn)移 JA/JNBE CF=0且 ZF=0 高于或等于轉(zhuǎn)移 JAE/JNB CF=0或 ZF=1 低于轉(zhuǎn)移 JB/JNAE CF=1且 ZF=0 低于或等于轉(zhuǎn)移 JBE/JNA CF=1或 ZF=1 8086指令系統(tǒng) 四、轉(zhuǎn)移指令 (續(xù) 3) 表 49 轉(zhuǎn)移指令 類別 指令名稱 操作碼 轉(zhuǎn)移條件 帶符號數(shù)條件轉(zhuǎn)移 大于轉(zhuǎn)移 JG/JNLE SF=OF且 ZF=0 大于或等于轉(zhuǎn)移 JGE/JNL SF=OF且 ZF=1 小于轉(zhuǎn)移 JL/JNGE SF≠OF 且 ZF=0 小于或等于轉(zhuǎn)移 JLE/JNG SF≠OF 且 ZF=1 8086指令系統(tǒng) 四、轉(zhuǎn)移指令 (續(xù) 4) 表 49 轉(zhuǎn)移指令 類別 操作碼 轉(zhuǎn)移條件 無條件轉(zhuǎn)移 JMP 無 8086指令系統(tǒng) 五、字符串操作指令 為了方便地實(shí)現(xiàn)字符串操作, 8086/8088提供了字符串操作指令。 例 【 47】 MOV AX, [2020]是將數(shù)據(jù)段中EA為 2020的內(nèi)存單元中的內(nèi)容送到 AX中 。先將寄存器 BR、IR中的值和位移量 X相加求出操作數(shù)在內(nèi)存的 EA,再根據(jù) EA和某段寄存器生成 PA尋找操作數(shù)。 說明:寄存器 R內(nèi)容和位移量 X之和是操作數(shù)在內(nèi)存的 EA。 ? 需要說明的是 , 在不同的計(jì)算機(jī)系統(tǒng)中 , 尋址方式的名稱和分類并不統(tǒng)一 , 但基本可以歸結(jié)為以下幾種方式或它們的變型或組合: 尋址方式 ? 固定尋址 ? 立即尋址 ( 立即數(shù)尋址 ) ? 寄存器尋址 ? 直接尋址 ? 間接尋址 ? 變址尋址 8086微處理器的尋址方式與指令系統(tǒng) 尋址方式 一條指令包含操作碼和操作數(shù)兩部分,操作碼指出該指令要進(jìn)行的操作,操作數(shù)指出該指令需要的操作數(shù)或操作數(shù)的地址。 ? 優(yōu)點(diǎn):簡化了指令系統(tǒng) ? 缺點(diǎn):指令執(zhí)行過程復(fù)雜 編址方式 ? 一個零地址空間:三種設(shè)備統(tǒng)一編址 , 寄存器 、 主存和 I/O對應(yīng)低地址到高地址 ? 無零地址空間:指堆棧計(jì)算機(jī) ? CACHE和 BUFFER是否需要編址 ? 尋址方式 ? 尋址方式的定義: ? 指令中如何提供操作數(shù)或操作數(shù)地址的方式 。 操作數(shù) 示例 1 ? 無操作數(shù)指令 ( 控制類指令 ) , 如: HLT LOCK CLC CLD CLI IRET 示例 2 單操作數(shù)指令 , 如: 加 1指令 INC AX 只需要指出加 1的操作數(shù) , 它是 “ 一地址 ”指令 。 操作碼 操作數(shù) 。 編址方式 ? 計(jì)算機(jī)中的編址設(shè)備: Register、 系統(tǒng)主存和 I/O設(shè)備 ? 編址方式: ? 三個零地址空間:即對上述三種設(shè)備分別進(jìn)行編址 , 并分別采用不同的尋址方式 , 很復(fù)雜 ,如: PC/XT ? 兩個零地址空間:對通用寄存器 R進(jìn)行獨(dú)立編址 , 主存和 I/O統(tǒng)一編址 , 地址碼的地址高端用于 I/O地址 , 64K。 指令系統(tǒng)設(shè)計(jì) ? 包括操作碼字段和操作數(shù)字段 ? 一個指令系統(tǒng)能夠提供哪些尋址方式 , 能否為編制程序提供方便 , 這是指令系統(tǒng)設(shè)計(jì)的關(guān)鍵 。 能用來作間接尋址的寄存器只能是 BX、 SI、DI或 BP四者之一 例 【 42】 MOV AX, [SI] 二、寄存器間接尋址 (續(xù) ) 表 42 寄存器間接尋址方式物理地址生成 段 段寄存器 EA PA 數(shù)據(jù)段 DS [BX] (DS)左移 4位+EA [SI] [DI] 附加數(shù)據(jù)段 ES [BX] (ES)左移 4位+EA [SI] [DI] 堆棧段 SS [BP] (SS)左移 4位+EA 三、變址尋址 匯編格式: X[R]( R是寄存器名, X表示位移量,其值是用 8位或 16位二進(jìn)制補(bǔ)碼表示的有符號數(shù))。 例 【 43】 MOV BX, 2[BX] 三、變址尋址 (續(xù) ) 表 43 變址尋址方式物理地址生成 段 段寄存器 EA PA 數(shù)據(jù)段 DS [BX]+X (DS)左移 4位+EA [SI] +X [DI] +X 附加數(shù)據(jù)段 ES [BX] +X (ES)左移 4位+EA [SI] +X [DI] +X 堆棧段 SS [BP] +X (SS
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1