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

正文內(nèi)容

[信息與通信]第三章8086尋址方式和指令系統(tǒng)-文庫吧資料

2025-01-04 12:09本頁面
  

【正文】 字節(jié)(表示變量的段地址)送到 DS段寄存器中。 IN AL, 50H; 從 50H端口讀一個(gè)字節(jié) → AL IN AX, 30H;從連續(xù)的兩個(gè) 8位端口 30H, 31H(即組成一個(gè) 16位端口) 讀一個(gè)字到 AX中,其中 30H 端口中的字節(jié)內(nèi)容 → AL; 31H端口中的字節(jié)內(nèi)容 → AH。 abcdefg.dpdp g f e d c b aC O M ( 共陰極)程序如下: DISP DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH, 6FH ┋ MOV BX, OFFSET DISP ;表首址 → BX MOV AL, 5 ; 5的段碼與表首址之間的 位移量 → AL XLAT( XLAT DISP); 5的段碼 6DH→AL MOV DL, AL ; 5的段碼 6DH保存到 DL 第一步:建立一個(gè)表格 (轉(zhuǎn)換以后的數(shù)據(jù)) 第二步:表首址 → BX 第三步:需要轉(zhuǎn)換的數(shù)據(jù) → AL 第四步:執(zhí)行 XLAT指令 DISP 3FH06H5BH4FH66H6DH7DH07H7FH6FH ┋ ┋數(shù)據(jù)段+1+2+3+4+6+5+7+8+9 用來完成 I/O端口與累加器之間的數(shù)據(jù)傳送,指令中要給出 I/O端口的地址。如 0的段碼為:(0 0 1 1 1 1 1 1)2=3FH; 1的段碼為: (0 0 0 0 0 1 1 0)2=06H等等。 ② 將表的首地址 → BX寄存器中(只能是 BX) ③ 在 AL中存放一個(gè)數(shù)據(jù)(就是需要轉(zhuǎn)換的代碼),而這個(gè)數(shù)據(jù)實(shí)際是表的首地址與所要查找的某一項(xiàng)之間的位移量( ∴ 表格中最多包含 256個(gè)字節(jié) ) ④ 執(zhí)行 XLAT指令,指令執(zhí)行后,將轉(zhuǎn)換后的代碼(所查的字節(jié)內(nèi)容)就 → AL中。 幾點(diǎn)說明: ① 段寄存器、 IP,立即數(shù)不能作為操作數(shù) XCHG AX, DS XCHG AX, 1000H XCHG BX, IP ② 兩個(gè)存儲(chǔ)單元之間不能直接交換數(shù)據(jù) [BX], [1000H] [DI], [BP] ③ 目的和源操作數(shù)的長(zhǎng)度必須一致 , AL XCHG DL, CX ( 5) XLAT表轉(zhuǎn)換指令(查表指令) 指令格式: XLAT 轉(zhuǎn)換表 指令功能:將一個(gè)字節(jié)從一種代碼轉(zhuǎn)換成另一種代碼。 例 329 假如當(dāng)前 SS=C000H, SP=1000H, AX=1234H BX=5678H, CX=ABCDH,則執(zhí)行指令 PUSH AX, PUSH BX, POP CX后,堆棧中的內(nèi)容發(fā)生什么變 化, AX, BX, CX中的內(nèi)容又是多少?畫圖說明。 ★源操作數(shù)可以是 16位通用寄存器、段寄存器或存儲(chǔ)器中的數(shù)據(jù)字,但 CS不能作為目的操作數(shù)。 ★源操作數(shù)可以是 16位通用寄存器、段寄存器或存儲(chǔ)器中的數(shù)據(jù)字,但不能是立即數(shù)。( 目的? ) 針對(duì)第③點(diǎn)說明,我們簡(jiǎn)單了解一下一個(gè)數(shù)據(jù)段的定義,以及段地址 → DS? 例如,下面是某個(gè)程序的數(shù)據(jù)段: DATA SEGMENT ;數(shù)據(jù)段開始 AREA1 DB 14H, 3BH AREA2 DB 3 DUP( 0) ARRAY DW 3100H, 01A6H STRING DB ‘GOOD’ DATA ENDS ;數(shù)據(jù)段結(jié)束 143B0000000031A601‘G ’( 4 7 )‘O ’( 4 F )‘O ’( 4 F )‘D ’( 4 4 )AREA1AREA2ARRAYSTRINGDATA段0000H0002H0005H0009H偏移地址DATA SEGMENT AREA1 DB 14H, 3BH AREA2 DB 3 DUP( 0) ARRAY DW 3100H, 01A6H STRING DB ‘GOOD’ DATA ENDS 圖 313 數(shù)據(jù)段占用存儲(chǔ)空間的情況 143B0000000031A601‘G ’( 4 7 )‘O ’( 4 F )‘O ’( 4 F )‘D ’( 4 4 )AREA1AREA2ARRAYSTRINGDATA段0000H0002H0005H0009H偏移地址此指令的功能是將符號(hào) 地址 ARRAY的偏移地址→ DX。 [BX], [1000H] MOV DS, ES ③ 立即數(shù)不能直接傳送給段寄存器,必須通過寄存器傳送給段寄存器。同時(shí) IP還不能作為源操作數(shù)。 33 8086的指令系統(tǒng) 8086指令系統(tǒng)中包含 133條基本指令,分六大類: ①數(shù)據(jù)傳送指令 ②算術(shù)運(yùn)算指令 ③邏輯運(yùn)算和移位指令 ④字符串操作指令 ⑤控制轉(zhuǎn)換指令 ⑥處理器控制指令 一、數(shù)據(jù)傳送指令 分 4類: ①通用數(shù)據(jù)傳送指令 ②輸入輸出指令 ③地址目標(biāo)傳送指令 ④標(biāo)志傳送指令 ( 1) MOV傳送指令 指令格式: MOV 目的,源 指令功能:將源操作數(shù)(一個(gè)字節(jié)或一個(gè)字)傳送到目的操作數(shù)。 例 323 若指令 MOV [BX], DL的機(jī)器碼 為 88 17H,試求指令 MOV CS: [BX], DL 的代碼。 MODR/M000001010011100101110111[BX]+[SI]D 1 6 直接地址[BX]+[SI]+D8 [BX]+[SI]+D16[BX]+[DI][BP]+[SI][BP]+[DI][DI][SI][BX][BX]+[DI]+D8[BP]+[SI]+D8[BP]+[DI]+D8[SI]+D8[DI]+D8[BX]+D8[BP]+D8[BX]+[DI]+D16[BP]+[SI]+D16[BP]+[DI]+D16[SI]+D16[BP]+D16[DI]+D16[BX]+D16W=0 W=100 01 1011ALCLDLBLAHCHDHBHAXBXCXDXSPBPSIDI表 32 MOD和 R/M的編碼表 例 318 求指令 MOV SP, BX的機(jī)器碼 ① REG決定寄存器 SP MOD REG R/M01234567815WD0 00 01 1操作碼11 100 01101234567815110 00 01 1操作碼D :至S P 寄存器W :傳送字 M O D :寄存器→寄存器R E G :S PR / M :B X圖 38 指令 MOV SP, BX的編碼 =8B E3H ┋┋┋代碼段數(shù)據(jù)段8BE3MOV SP, BX┋┋圖 MOV SP, BX在代碼段中的存放 ② REG決定寄存器 BX MOD REG R/M01234567815WD0 00 01 1操作碼11 011 10001234567815100 00 01 1操作碼D :從B X 寄存器出W :傳送字 M O D :寄存器→寄存器R E G :B XR / M :S P=89 DCH 圖 39 指令 MOV SP, BX的另一種編碼 ┋┋┋代碼段數(shù)據(jù)段89DCMOV SP, BX┋┋圖 MOV SP, BX在代碼段中的存放 例 319 求指令 MOV CL, [BX+1234H] 的機(jī)器碼 10 001 111010 00 01 1操作碼D :至C LW :傳送字節(jié) M O D :存儲(chǔ)器,1 6 位位移量R E G :C LR / M :B X + D 1 6字節(jié)1 字節(jié)2001 10 10 0 0 0 0 1 0 0 1 0字節(jié)3 字節(jié)4低位移量 高位移量Disp_HDisp_L圖 310指令 MOV CL, [BX+1234H]的編碼 =8A 8F 34 12H ┋┋┋代碼段數(shù)據(jù)段8F34M O V C L ,[ B X + 1 2 3 4 H ]┋┋8A12圖 MOV CL, [BX+1234H]在代碼 段中的存放 例 320 求指令 MOV DX, 5678H的機(jī)器碼 REGW10 11操作碼立即數(shù)低字節(jié) 立即數(shù)高字節(jié)字節(jié)1 字節(jié)2 字節(jié)3010110 11操作碼01111000 01010110字節(jié)1 字節(jié)2 字節(jié)3W :傳送字R E G :D X=BA 78 56H 求指令 MOV BH, 34H的機(jī)器碼 REGW10 11操作碼立即數(shù)低字節(jié)字節(jié)1 字節(jié)2111010 11操作碼00110100字節(jié)1 字節(jié)2W :傳送字節(jié)R E G :B H=B7 34H 例 321 求指令 MOV [BX+2100H],0FA50H 的機(jī)器碼 1 1 W001 01操作碼000字節(jié)1 字節(jié)2MOD R/M位移量低字節(jié) 位移量高字節(jié)字節(jié)3 字節(jié)4立即數(shù)低字節(jié) 立即數(shù)高字節(jié)字節(jié)5 字節(jié)61 1 1001 01操作碼000字節(jié)1 字節(jié)210W :傳送字111MOD R/MBX+D1600000000 00100001字節(jié)3 字節(jié)4disp_L disp_H01010000 11111O1O字節(jié)5 字節(jié)6data_L data_H=C7 87 00 21 50 FAH ┋┋┋代碼段數(shù)據(jù)段0021MOV [BX+2100H],0FA50H┋┋8750C7FA圖 MOV [BX+2100H], 0FA50H 在代碼段中的存放 例 322 求指令 MOV DS, AX的機(jī)器碼 1 1 0100 01操作碼0 REG字節(jié)1 字節(jié)2MOD R/M1 1 0100 01操作碼0 11字節(jié)1 字節(jié)211 000REG:DSMOD R/MAX=8E D8H 對(duì)于帶有段超越前綴的指令編碼時(shí), 要在指令代碼前加一個(gè) 8位的段超越前綴 代碼,代碼的格式為 001 110,其中 位表明段超越前綴寄存器,編碼與上面 列出的相同。 W = 1 (字) W = 0 (字節(jié))REG000001010011100101110111AX ALBXCXDXSPDIBPSIBLCLDLAHBHCHDH表 31 8086寄存器編碼表 段寄存器REG0 000 010 100 11ESCSDSSS 在這類 MOV指令中有兩個(gè)操作數(shù), 其中有一個(gè)必為寄存器,其編號(hào)由 REG決 定,另一個(gè)操作數(shù)可能是寄存器,也可能 是存儲(chǔ)單元,由指令代碼的 MOD和 R/M來 指定。若使用的是段寄存器,則只需 REG的低兩位來決定,最高位為 0。 二、 機(jī)器語言指令代碼的編制 我們用寄存器之間或寄存器與存儲(chǔ)器 之間交換數(shù)據(jù)的 MOV指令,來說明指令的 編碼格式,具體格式如圖 37所示。但我們 可以為每種基本指令類型給出一個(gè) 編碼格 式 ,對(duì)照格式填上不同的數(shù)字來表示不同 的尋址方式、數(shù)據(jù)類型等,就能求得每條 指令的機(jī)器碼。 對(duì)于 Z80、 8085等 8位微處理器,進(jìn)行 指令編碼是很容易的事,只要有一張指令 編碼表,匯編語言源程序與機(jī)器碼之間的 對(duì)應(yīng)關(guān)系就一目了然,很容易通過查表求 出每條指令的機(jī)器碼。不過,若要透徹了解計(jì)算機(jī)的工作原 理,以及能看懂包含機(jī)器碼的程序清單, 對(duì)程序進(jìn)行正確的調(diào)試、排錯(cuò)等,就需要 熟悉機(jī)器語言。 作業(yè): P120( 1, 2, 3) 其中 1( 1),( 3),( 5) 2( 2),( 4),( 6) 3 ( 2),( 4),( 6) ( 8),( 10) 32 指令的機(jī)器碼表示方法 一、機(jī)器語言指令的編碼目的和特點(diǎn)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1