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

正文內(nèi)容

數(shù)據(jù)定義與傳送哦ppt課件(已改無錯(cuò)字)

2023-06-12 12:13:14 本頁面
  

【正文】 送入 EAXCDQ ; 將 EAX寄存器內(nèi)容符號(hào)擴(kuò)展成 64b,送入 EDX和 EAX2.擴(kuò)展傳送指令擴(kuò)展傳送指令 MOVZX,MOVSX,CBW,CWD,CWDE,CDQ功能:把 8位的操作數(shù)擴(kuò)展為 16/32位,或者把 16位的操作數(shù)擴(kuò)展為 32位,送入目的寄存器。說明:1) CWDE 、 CDQ是 386后繼機(jī)型新增的;2)主要用于有符號(hào)數(shù)除法之前對(duì)被除數(shù)位數(shù)進(jìn)行擴(kuò)展。72微機(jī)原理與匯編語言舉例:假設(shè)有( EAX) =00008060HCBWCWDCWDECDQ2.擴(kuò)展傳送指令擴(kuò)展傳送指令 MOVZX,MOVSX,CBW,CWD,CWDE,CDQ。( AX) =0060H。( DX) =0FFFFH,( AX) =8060H。( EAX)=0FFFF8060H。( EDX)=00000000H, (EAX)=00008060H73微機(jī)原理與匯編語言MOVZXREG16/REG32,REG8/MEM8/REG16/MEM16功能:將 8/16位寄存器 /存儲(chǔ)器操作數(shù)零擴(kuò)展,送入 16/32位寄存器MOVSXREG16/REG32,REG8/MEM8/REG16/MEM16功能:將 8/16位寄存器 /存儲(chǔ)器操作數(shù)符號(hào)擴(kuò)展,送入 16/32位寄存器舉例:設(shè)有( AX) =8060HMOVZXEBX,AXMOVSXEBX,AXMOVSXEBX,AL;( EBX) =00008060H;( EBX) =0FFFF8060H;( EBX) =00000060H74微機(jī)原理與匯編語言3.交換指令交換指令 XCHG,SWAP格式: XCHGREG/MEM,REG/MEM功能: 交換源、目的操作數(shù)的內(nèi)容。說明: 1)可以在寄存器之間或者在寄存器和存儲(chǔ)器之間交換信息。2)不允許使用段寄存器。3)不影響標(biāo)志位。格式: BSWAPREG32功能: 交換 32位寄存器的最高字節(jié)和最低字節(jié)、次高字節(jié)和次低 字節(jié)。說明: 486后繼機(jī)型新增指令。75微機(jī)原理與匯編語言舉例 1:寄存器和寄存器交換movax,1234h movbx,5678h xchgax,bxxchgah,al舉例 2:寄存器和存儲(chǔ)器交換xchgax,[2022h] ;字交換xchgal,[2022h] ;字節(jié)交換xchgeax,[2022h];雙字交換3.交換指令交換指令 XCHG,SWAP。(ax)=5678h,(bx)=1234h。(ax)=7856h76微機(jī)原理與匯編語言舉例 3:( EAX) =12345678HXCHGAH,AL BSWAPEAX;( AX) =7856H;( EAX) =78563412H3.交換指令交換指令 XCHG,BSWAP77微機(jī)原理與匯編語言4.換碼指令換碼指令 XLAT格式: XLAT MEM16功能:以 MEM16對(duì)應(yīng)段寄存器為段基址,以 BX為偏移地址查表 格式: XLAT ; AL←DS:[BX+AL]功能:用 AL寄存器的內(nèi)容查表,結(jié)果存回 AL寄存器。表格的首地址事先存放在 DS:BX中。78微機(jī)原理與匯編語言TABLE DB “0123456789ABCDEF”……PUSH DS ; 保護(hù) DS寄存器內(nèi)容MOV BX,SEGTABLE ;取 TABLE所在的段基址送 BXMOV DS,BX ;從 BX轉(zhuǎn)送入 DSLEA BX,TABLE ;取 TABLE的偏移地址XLAT ; 查表, (AL)=01001011B(’B’)POP DS ;恢復(fù) DS寄存器內(nèi)容設(shè)( AL) =00001011B下面程序執(zhí)行后, AL中的二進(jìn)制數(shù)改變?yōu)閷?duì)應(yīng)的十六進(jìn)制數(shù)字符的 ASCII代碼 01000010( ’B’)。79微機(jī)原理與匯編語言? 例 :若(BX)=0040H,(AL)=0FH,(DS)=F000H(F004F)=2CH則執(zhí)行 XLAT指令后(AL)=2CH。把 AL中的代碼 0FH轉(zhuǎn)換為 2CH。 (BX)=0040H……(AL)=0FH2CH存儲(chǔ)器(DS)=F000H 數(shù)據(jù)段表格4.換碼指令換碼指令 XLAT80微機(jī)原理與匯編語言例:4.換碼指令換碼指令 XLATdatasegmenttable1db30h,31h,32hdataendsdsegsegmenttable2db34h,35h,36hdsegendscodesegmentassumecs:code,ds:data,es:dsegstart:movax,datamovds,axmovax,dsegmoves,axmovbx,0moval,1xlatmoval,1xlattable2movah,4chint21hcodeendsendstart(AL)=31H(AL)=35H81微機(jī)原理與匯編語言? 如何把 AL寄存器中的十進(jìn)制數(shù)字轉(zhuǎn)換為 ASCII碼值?BX……AL39h存儲(chǔ)器存儲(chǔ)器數(shù)據(jù)段數(shù)據(jù)段表格表格30h31h32h4.換碼指令換碼指令 XLATdatasegmenttabledb39。012345678939。dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovbx,offsettablemoval,5xlatmovah,4chint21hcodeendsendstart82微機(jī)原理與匯編語言 堆棧堆棧堆棧( STACK) 是用戶使用的存儲(chǔ)器的一部分,用來存放臨時(shí)性的數(shù)據(jù)和其他信息,例如函數(shù)使用的局部變量、調(diào)用子程序的入口參數(shù)、返回地址等。 堆棧的段基址必須放在 SS中。堆棧段的 “棧頂 ”地址(偏移地址)放在 SP寄存器中。83微機(jī)原理與匯編語言252。在 SEGMENT偽指令中增加 “STACK”表示該段是 “堆棧 ”。252。這個(gè)程序裝入時(shí),操作系統(tǒng)把 SSEG的段基址置入 SS,堆棧 段的字節(jié)數(shù)(本例中為 200=0C8H) 置入 SP。1.堆棧段結(jié)構(gòu)堆棧段結(jié)構(gòu)SSEGSEGMENTSTACK ; 堆棧段開始 DW 100DUP(?) ; 大小為 100個(gè)字SSEGENDS ; 堆棧段結(jié)束堆棧段的定義:84微機(jī)原理與匯編語言?從較大地址開始分配和使用(數(shù)據(jù)段、代碼段從較小地址開始分配和使用);?由 SP中地址指出的存儲(chǔ)單元稱為 “棧頂 ”,數(shù)據(jù)總是在 “棧頂 ”位置存入(稱為 “壓入 ”)、取出(稱為 “彈出 ”);?最先進(jìn)入的數(shù)據(jù)最后被彈出( FirstInLastOut,FILO),最后進(jìn)入的數(shù)據(jù)最先被彈出( LastInFirstOut,LIFO)堆棧段的特點(diǎn):堆棧段的特點(diǎn):85微機(jī)原理與匯編語言壓入 2B數(shù)據(jù)的操作SP←(SP) - 2SS:[SP]← 數(shù)據(jù) 彈出 2B數(shù)據(jù)的操作目的操作數(shù) ← SS:[SP]SP←(SP)+286微機(jī)原理與匯編語言ES,DS指向 PSP。SS指向用戶程序區(qū);CS指向用戶代碼段(由 END偽指令指明);(SP)=0000H,指向 64KB存儲(chǔ)器尾部。程序規(guī)模較小時(shí),可以不定義堆棧段,用戶程序裝入內(nèi)存時(shí) :87微機(jī)原理與匯編語言2.8086CPU堆棧指令堆棧指令指令的操作數(shù)是 16b的寄存器、存儲(chǔ)器、段寄存器( CS除外)。指令執(zhí)行后,操作數(shù)的內(nèi)容被更新。(1)PUSH( 壓棧)指令 :把 16b操作數(shù)壓入堆棧格式: PUSHREG16/MEM16/SEG指令的操作數(shù)是 16b的寄存器、存儲(chǔ)器、段寄存器。指令執(zhí)行后,操作數(shù)的內(nèi)容不變。 格式: POPREG16/MEM16/SEG(2)POP(出棧)指令 :從堆棧中彈出 16b存入操作數(shù)88微機(jī)原理與匯編語言? 例例 1:: 把 CS寄存器內(nèi)容存入 DSPUSHCSPOP DS? 例例 2:: 子程序中通常利用堆棧保護(hù)數(shù)據(jù)PUSHAXPUSHBXPUSHCX…POPCXPOPBXPOPAX2.8086CPU堆棧指令堆棧指令89微機(jī)原理與匯編語言(3)PUSHF指令 :把 FLAGS寄存器內(nèi)容壓入堆棧。格式: PUSHF(4)POPF指令: 從堆棧彈出 16b送入 FLAGS寄存器。指令執(zhí)行后,各標(biāo)志位被刷新。格式: POPF舉例:下面程序段把舉例:下面程序段把 TF標(biāo)志位置位(置標(biāo)志位置位(置 1):):PUSHFPOP AX ; AX←FlagsOR AX,0100H;將 D8( TF位)置 1PUSH AXPOPF ; Flags←AX 90微機(jī)原理與匯編語言(5)LAHF指令: 把 FLAGS寄存器的低 8位送入 AH寄存器。格式: LAHF(6)SAHF指令: 把 AH寄存器內(nèi)容送入 FLAGS寄存器的低 8位, 它的執(zhí)行刷新了 SF,ZF,AF,PF,CF標(biāo)志位。格式: SAHF91微機(jī)原理與匯編語言3.擴(kuò)展的堆棧指令擴(kuò)展的堆棧指令80386開始的微處理器增設(shè)了 32b的堆棧指令。PUSHREG32/MEM32; 32位寄存器、存儲(chǔ)器操作數(shù)壓入堆棧POP REG32/MEM32; 從堆棧彈出 32位,送入目的操作數(shù)PUSHIMM ; 16/32位立即數(shù)壓入堆棧例例 1:PUSHEAXPUSHDWORDPTR[DI]POPECXPOPDWORDPTR[SI]PUSH0A123H92微機(jī)原理與匯編語言PUSHAD; 把 8個(gè) 32位通用寄存器順序壓棧POPAD; 從堆棧中彈出 8個(gè) 32b數(shù)據(jù)順序存入通用寄存器252。80386增加了 8個(gè) 32位通用寄存器的入、出棧指令,順序同上。252。80286微處理器增加了在一條指令中把 8個(gè)通用寄存器壓入、彈出堆棧的指令,壓入的順序是: AX、 CX、 DX、 BX、SP、 BP、 SI、 DI。252。注意 :這里的 SP代表指令執(zhí)行之前的值。彈出的順序相反。PUSHA; 把 8個(gè) 16位通用寄存器順序壓棧POPA ; 從堆棧中彈出 8個(gè) 16b數(shù)據(jù),順序存入通用寄存器252。上述指令執(zhí)行都不影響標(biāo)志位。93微機(jī)原理與匯編語言252。80386開始新增加了壓入、彈出 32位 EFLAGS寄存器指令 .PUSHFD; 把 32位 EFLAGS寄存器內(nèi)容壓入堆棧,原寄存器內(nèi)容不變POPFD ; 從堆棧中彈出 32b, 存入 EFLAGS, 寄存器內(nèi)容被更新94微機(jī)原理與匯編語言 操作數(shù)表達(dá)式操作數(shù)表達(dá)式指令中的操作數(shù)可以是一個(gè)表達(dá)式,這個(gè)表達(dá)式的值在匯編成目標(biāo)代碼的時(shí)候進(jìn)行計(jì)算,產(chǎn)生目標(biāo)代碼。例例 : 設(shè)變量 X的偏移地址為 1020HMOV AL,X+5 MOV AL,[1025H]95微機(jī)原理與匯編語言252。匯編時(shí),對(duì) EQU定義的符號(hào)名用對(duì)應(yīng)的表達(dá)式進(jìn)行 “替換 ”。1.符號(hào)定義偽指令.符號(hào)定義偽指令符號(hào)名 EQU 表達(dá)式NUM EQU215MOD15ERR_MSG EQU “DataOverride”MESSAGE DB ERR_MSG MOV CX,NUM+1 例例 1, 有以下定義:;等價(jià)于;等價(jià)于 MESSAGEDB“Data1
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1