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

正文內(nèi)容

匯編語(yǔ)言講稿_11(專業(yè)版)

  

【正文】 ds:si指向 f000:ffff mov ax,data mov es,ax mov di,15 。 ? 在串處理指令中,控制每次操作后si, di的增減。 這就好像, call和 ret指令的關(guān)系一樣。 檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令 ? 編程實(shí)現(xiàn)如下功能: 如果 (ah)=(bh)則 (ah)=(ah)+(ah),否則(ah)=(ah)+(bh)。 cmp指令 ? 上面,我們深入討論了 cmp指令在進(jìn)行有符號(hào)數(shù)和無(wú)符號(hào)數(shù)比較時(shí),對(duì) flag 相關(guān)標(biāo)志位的影響,和 CPU如何通過(guò)相關(guān)的標(biāo)志位來(lái)表示比較的結(jié)果。 但 SF=1不能說(shuō)明在邏輯上運(yùn)算所得的正確結(jié)果的正負(fù)。 我們?cè)倏磧蓚€(gè)例子。 其他相關(guān)指令通過(guò)識(shí)別這些被影響的標(biāo)志寄存器位來(lái)得知比較結(jié)果。我們將計(jì)算分兩步進(jìn)行,先將低 16位相加,然后將高 16 位和進(jìn)位值相加。 adc指令 ? adc是帶進(jìn)位加法指令 ,它利用了 CF位上記錄的進(jìn)位值。 OF標(biāo)志 ? 由于在進(jìn)行有符號(hào)數(shù)運(yùn)算時(shí),可能發(fā)生溢出而造成結(jié)果的錯(cuò)誤。 ? 下面我們看兩個(gè)溢出的例子。CF記錄了最高有效位向更高位的進(jìn)位值 add al,al 。 SF標(biāo)志 ? 這也就是說(shuō), CPU在執(zhí)行 add 等指令時(shí),是必然要影響到 SF標(biāo)志位的值的。如果結(jié)果不為 0,則 ZF要記錄下“不是 0”這樣的否定信息。 ? 本章中的標(biāo)志寄存器(以下簡(jiǎn)稱為 flag)是我們要學(xué)習(xí)的最后一個(gè)寄存器。 ZF標(biāo)志 ? 注意: 我們?cè)谑褂靡粭l指令的時(shí)候,要注意這條指令的全部功能,其中包括,執(zhí)行結(jié)果對(duì)標(biāo)記寄存器的哪些標(biāo)志位造成影響。 特別提示 ? 檢測(cè)點(diǎn) ( p205) ? 沒(méi)有完成此檢測(cè)點(diǎn),請(qǐng)不要向下進(jìn)行。 CF標(biāo)志 ? 比如,下面的指令: mov al,98H add al,al 。88H,為有符號(hào)數(shù) 120的補(bǔ)碼 執(zhí)行后將產(chǎn)生溢出。 OF標(biāo)志 ? 一定要注意 CF和 OF的區(qū)別: CF是對(duì)無(wú)符號(hào)數(shù)運(yùn)算有意義的標(biāo)志位; 而 OF是對(duì)有符號(hào)數(shù)運(yùn)算有意義的標(biāo)志位。 adc指令 ? adc指令示例(三) ? mov al,98H add al,al adc al,3 執(zhí)行后, (ax)=34H。 adc指令 ? 程序代碼 mov ax,001EH mov bx,0F000H mov cx,1000H add cx,1EF0H adc bx,1000H adc ax,0020H adc指令 ? 下面我們,編寫一個(gè)子程序,對(duì)兩個(gè)128位數(shù)據(jù)進(jìn)行相加。 cmp指令 ? 其實(shí),我們通過(guò) cmp 指令執(zhí)行后,相關(guān)標(biāo)志位的值就可以看出比較的結(jié)果。 cmp指令 ? 我們可以根據(jù)指令執(zhí)行后,相關(guān)標(biāo)志位的值來(lái)判斷比較的結(jié)果。 cmp指令 ? 如果沒(méi)有溢出發(fā)生的話,那么,實(shí)際結(jié)果的正負(fù)和邏輯上真正結(jié)果的正負(fù)就一致了。 ? 比如: jcxz就是一個(gè)條件轉(zhuǎn)移指令,它可以檢測(cè) cx 中的數(shù)值,如果 (cx)=0,就修改 IP,否則什么也不做。 ? “相等則轉(zhuǎn)移”這種邏輯含義,是通過(guò)和 cmp 指令配合使用來(lái)體現(xiàn)的,因?yàn)槭?cmp 指令為“ ZF=1”賦予了“兩數(shù)相等”的含義。 ? 我們可以直接考慮 cmp和 je等指令配合使用時(shí),表現(xiàn)出來(lái)的邏輯含義。 ? 當(dāng)然,也可以傳送一個(gè)字, movsw指令 DF標(biāo)志和串傳送指令 ? 格式 2: movsw ? 功能:(以字為單位傳送) 將 ds:si指向的內(nèi)存字單元中 word送入 es:di中,然后根據(jù)標(biāo)志寄存器 DF位的值,將 si和 di遞增 2或遞減 2。 特別提示 ? 檢測(cè)點(diǎn) ( p223) ? 沒(méi)有完成此檢測(cè)點(diǎn),請(qǐng)不要向下進(jìn)行。 DF標(biāo)志和串傳送指令 ? 8086CPU提供下而兩條指令對(duì) DF位進(jìn)行設(shè)置: ? cld指令:將標(biāo)志寄存器的 DF位置 0 ? std指令:將標(biāo)志寄存器的 DF位置 1 ? 我們來(lái)看兩個(gè)程序 ? 編程 1 ? 編程 2 DF標(biāo)志和串傳送指令 ? 編程:用串傳送指令,將 F000H段中的最后 16個(gè)字符復(fù)制到 data段中。 ? 根據(jù)有符號(hào)數(shù)的比較結(jié)果進(jìn)行轉(zhuǎn)移的條件轉(zhuǎn)移指令的工作原理和無(wú)符號(hào)的相同,只是檢測(cè)了不同的標(biāo)志位。因?yàn)榇颂幍膉e指令檢測(cè)到的 ZF=1 ,不是由 cmp等比較指令設(shè)置的,而是由 add指令設(shè)置的,并不具有“兩數(shù)相等”的含義。 檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令 ? 我們看一下根據(jù)無(wú)符號(hào)數(shù)的比較結(jié)果進(jìn)行轉(zhuǎn)移的條件轉(zhuǎn)移指令。 cmp指令 ? ( 3)如果 SF=0,而 OF=1 OF=1 ,說(shuō)明有溢出,邏輯上真正結(jié)果的正負(fù) ≠實(shí)際結(jié)果的正負(fù); 因 SF=0,實(shí)際結(jié)果非負(fù),而 OF=1說(shuō)明有溢出,則結(jié)果非 0 ,所以,實(shí)際結(jié)果為正。 這是因?yàn)樵谶\(yùn)算的過(guò)程中可能發(fā)生溢出。 cmp指令 ? 我們以 cmp ah,bh為例進(jìn)行說(shuō)明: cmp ah,bh 如果 (ah)=(bh) 則 (ah)(bh)=0,所以:ZF=1; 如果 (ah)≠(bh) 則 (ah)(bh) ≠0,所以: ZF=0; 所以,我們根據(jù) cmp指令執(zhí)行后 ZF的值,就可以知道兩個(gè)數(shù)據(jù)是否相等。 sbb指令 ? 比如,計(jì)算 003E100OH–00202323H,結(jié)果放在 ax, bx中,程序如下: mov bx,1000H mov ax,003EH sub bx,2023H sub ax,0020H sbb指令 ? sbb和 adc是基于同樣的思想設(shè)計(jì)的兩條指令,在應(yīng)用思路上和 adc類似。 adc指令 ? 我們來(lái)看一下兩個(gè)數(shù)據(jù): 0198H和 0183H如何相加的: 01 98 + 01 83 1 03 1B 可以看出,加法可以分兩步來(lái)進(jìn)行: ? ( 1)低位相加; ? ( 2)高位相加再加上低位相加產(chǎn)生的進(jìn)位值。 ? 對(duì)于無(wú)符號(hào)數(shù)運(yùn)算, 0F0H+88H有進(jìn)位, CF=1; ? 對(duì)于有符號(hào)數(shù)運(yùn)算, 0F0H+88H發(fā)生溢出, OF=1。 OF標(biāo)志 ? 同樣,對(duì)于: mov al,0F0H 。 ? 那么,什么是機(jī)器所能表示的范圍呢? OF標(biāo)志 ? 比如說(shuō),指令運(yùn)算的結(jié)果用 8 位寄存器或內(nèi)存單元來(lái)存放。 由于這個(gè)進(jìn)位值在 8位數(shù)中無(wú)法保存,我們?cè)谇懊娴恼n程中,就只是簡(jiǎn)單地說(shuō)這個(gè)進(jìn)位值丟失了。 SF標(biāo)志 ? 不管我們?nèi)绾慰创?CPU 在執(zhí)行 add等指令的時(shí)候,就已經(jīng)包含了兩種含義,也將得到用同一種信息來(lái)記錄的兩種結(jié)果。 ZF標(biāo)志 ? flag的第 6位是 ZF,零標(biāo)志位。 引言 ? 在這一章中,我們學(xué)習(xí)標(biāo)志寄存器中的CF、 PF、 ZF、 SF、 OF、 DF 標(biāo)志位,和一些與其相關(guān)的典型指令。 ? 有符號(hào)數(shù)與補(bǔ)碼 ? 示例 mov al,10000001B add al,1 結(jié)果: (al)=10000010B SF標(biāo)志 ? 我們可以將 add指令進(jìn)行的運(yùn)算當(dāng)作無(wú)符號(hào)數(shù)的運(yùn)算,那么 add指令相當(dāng)于計(jì)算 129+1,結(jié)果為 130( 10000010B); ? 也可以將 add指令進(jìn)行的運(yùn)算當(dāng)作有符號(hào)數(shù)的運(yùn)算,那么 add指令相當(dāng)于計(jì)算 127+1,結(jié)果為 126( 10000010B)。 ? 比如,兩個(gè) 8 位數(shù)據(jù): 98H+98H,將產(chǎn)生進(jìn)位。 在進(jìn)行有符號(hào)數(shù)運(yùn)算的時(shí)候,如結(jié)果超過(guò)了機(jī)器所能表示的范圍稱為溢出。 ? 造成這種情況的原因,就是實(shí)際的結(jié)果 197,作為一個(gè)有符號(hào)數(shù),在 8 位寄存器 al中存放不下。 OF標(biāo)志 mov al,0F0H add al,88H add指令執(zhí)行后: CF=1, OF=1。 ? 顯然,如果 CF 的值是被 sub指令設(shè)置
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1