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

正文內(nèi)容

匯編語言講稿_11(留存版)

2025-03-30 10:53上一頁面

下一頁面
  

【正文】 的,那么它的含義就是借位值;如果是被 add指令設(shè)置的,那么它的含義就是進(jìn)位值。 ? 利用 sbb指令我們可以對(duì)任意大的數(shù)據(jù)進(jìn)行減法運(yùn)算。 ? 下面我們?cè)賮砜匆幌氯绻?cmp來進(jìn)行有符號(hào)數(shù)比較時(shí), CPU用哪些標(biāo)志位對(duì)比較結(jié)果進(jìn)行記錄。 cmp指令 ? 所得到的相應(yīng)結(jié)果的正負(fù),并不能說明,運(yùn)算所應(yīng)該得到的結(jié)果的正負(fù)。這樣, SF=1,OF = 1 ,說明了 (ah)(bh)。 檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令 ? 因?yàn)? cmp 指令可以同時(shí)進(jìn)行兩種比較,無符號(hào)數(shù)比較和有符號(hào)數(shù)比較,所以根據(jù) cmp 指令的比較結(jié)果進(jìn)行轉(zhuǎn)移的指令也分為兩種,即: ? 根據(jù)無符號(hào)數(shù)的比較結(jié)果進(jìn)行轉(zhuǎn)移的條件轉(zhuǎn)移指令,它們檢測(cè) ZF、 CF的值; ? 和根據(jù)有符號(hào)數(shù)的比較結(jié)果進(jìn)行轉(zhuǎn)移的條件轉(zhuǎn)移指令,它們檢測(cè) SF、 OF和 ZF的值。 檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令 ? 可在這個(gè)時(shí)候發(fā)生的轉(zhuǎn)移確不帶有“相等則轉(zhuǎn)移”的含義。 檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令 ? 上面講解了根據(jù)無符號(hào)數(shù)的比較結(jié)果進(jìn)行轉(zhuǎn)移的條件轉(zhuǎn)移指令。 DF標(biāo)志和串傳送指令 ? 由于 flag的 DF位決定著串傳送指令執(zhí)行后, si和 di改變的方向, 所以 CPU應(yīng)該提供相應(yīng)的指令來對(duì) DF位進(jìn)行設(shè)置,從而使程序員能夠決定傳送的方向。 標(biāo)志寄存器在 Debug中的表示 ? 在 Debug中,標(biāo)志寄存器是按照有意義的各個(gè)標(biāo)志位單獨(dú)表示的。 DF標(biāo)志和串傳送指令 ? 我們可以用匯編語法描述 movsw的功能如下: mov es:[di],word ptr ds:[si]。 ? 它們?cè)诼?lián)合使用的時(shí)候表現(xiàn)出來的功能有些像高級(jí)語言中的 IF語句。 檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令 ? 至于究竟在 je之前使不使用 cmp指令,在于我們的安排。 ? 所有條件轉(zhuǎn)移指令的轉(zhuǎn)移位移都是 [128, 127]。 所以,我們應(yīng)該在考察 SF(得知實(shí)際結(jié)果的正負(fù))的同時(shí)考察 OF(得知有沒有溢出),就可以得知邏輯上真正結(jié)果的正負(fù),同時(shí)就可以知道比較的結(jié)果。 ? 單純地考察 SF 的值不可能知道結(jié)果的正負(fù)。 ? cmp ax,bx cmp指令 ? 現(xiàn)在我們可以看出比較指令的設(shè)計(jì)思路,即:通過做減法運(yùn)算,影響標(biāo)志寄存器,標(biāo)志寄存器的相關(guān)位記錄了比較的結(jié)果。 ? 名稱: add128 ? 功能:兩個(gè) 128位數(shù)據(jù)進(jìn)行相加 ? 參數(shù) adc指令 ? 參數(shù): ? ds:si指向存儲(chǔ)第一個(gè)數(shù)的內(nèi)存空間,因數(shù)據(jù)為 128位,所以需要 8個(gè)字單元,由低地址單元到高地址單元依次存放 128位數(shù)據(jù)由低到高的各個(gè)字。 adc執(zhí)行時(shí),相當(dāng)于計(jì)算: (ax)+3+CF=30H+3+1=34H。 OF標(biāo)志 ? 比如: mov al,98 add al,99 add指令執(zhí)行后: CF=0, OF=1。 因?yàn)?add al,88H進(jìn)行的有符號(hào)數(shù)運(yùn)算是: (al)=(al)+(120)=(16)+(120)=136 而結(jié)果 136超出了機(jī)器所能表示的 8位有符號(hào)數(shù)的范圍: 128~127。執(zhí)行后 : (al)=30H, CF=1, 。 CF標(biāo)志 ? flag的第 0位是 CF,進(jìn)位標(biāo)志位。 PF標(biāo)志 ? flag的第 2位是 PF,奇偶標(biāo)志位。 引言 ? flag 和其他寄存器不一樣,其他寄存器是用來存放數(shù)據(jù)的,都是整個(gè)寄存器具有一個(gè)含義。 ? 在計(jì)算機(jī)中 1 表示邏輯真,表示肯定,所以當(dāng)結(jié)果為 0的時(shí)候 ZF=1,表示“結(jié)果是 0 ”。 ? 如果我們將數(shù)據(jù)當(dāng)作無符號(hào)數(shù)來運(yùn)算, SF的值則沒有意義,雖然相關(guān)的指令影響了它的值。執(zhí)行后 : (al)=30H, CF=1, 。 ? 注意,這里所講的溢出,只是對(duì)有符號(hào)數(shù)運(yùn)算而言。 ? 造成這種情況的原因,就是實(shí)際的結(jié)果 136,作為一個(gè)有符號(hào)數(shù),在 8位寄存器al中存放不下。 特別提示 ? 檢測(cè)點(diǎn) ( page207) ? 沒有完成此檢測(cè)點(diǎn),請(qǐng)不要向下進(jìn)行。 分析 adc指令 ? 分析: 因?yàn)閮蓚€(gè)數(shù)據(jù)的位數(shù)都大于 16,用add 指令無法進(jìn)行計(jì)算。 ? cmp 指令執(zhí)行后,將對(duì)標(biāo)志寄存器產(chǎn)生影響。 cmp指令 ? 通過上面的例子,我們是不是可以得到這樣的結(jié)論: cmp 操作對(duì)象 1,操作對(duì)象 2 指令執(zhí)行后,SF=1,就說明操作對(duì)象 1<操作對(duì)象 2? 當(dāng)然不是。 ? 而 SF被用來記錄這個(gè)實(shí)際結(jié)果的正負(fù),所以 SF=1。所以 (ah)≥(bh)。 ? 比如 je,檢測(cè) ZF位,當(dāng) ZF=1的時(shí)候進(jìn)行轉(zhuǎn)移,如果在 je 前面使用了 cmp 指令,那么 je對(duì) ZF的檢測(cè),實(shí)際上就是間接地檢測(cè) cmp的比較結(jié)果是否為兩數(shù)相等。 ? 但究竟是否配合使用它們,完全是你自己的事情。 DF標(biāo)志和串傳送指令 ? flag的第 10位是 DF,方向標(biāo)志位。 程序代碼 DF標(biāo)志和串傳送指令 mov ax,0f000h mov ds,ax mov si,0ffffh 。es:di指向 data:15 mov cx ,16 。 ? DF = 0:每次操作后 si, di遞增; ? DF = 1:每次操作后 si, di遞減。 檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令 ? 對(duì)于 jne、 jb、 jnb、 ja、 jna等指令和 cmp指令配合使用的思想和 je相同,可以自己分析一下。 cmp ah,bh je s add ah,bh jmp short ok s: add ah,ah ok: ret 檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令 ? 上面的程序執(zhí)行時(shí),如果 (ah)=(bh) ,則 cmp ah,bh使 ZF=1,而 je檢測(cè) ZF是否為 1,如果為 1,將轉(zhuǎn)移到標(biāo)號(hào) s 處執(zhí)行指令 add ah,ah。 ? 在學(xué)習(xí)中,要注意領(lǐng)會(huì) 8086CPU這種工作機(jī)制的設(shè)計(jì)思想。 cmp指令 ? 又比如: mov ah,0A0H mov bh,0CBH cmp ah,bh 結(jié)果 SF=1,運(yùn)算 (ah)(bh) 實(shí)際得到的結(jié)果是 D5H,但是在邏輯上,運(yùn)算所應(yīng)該得到的結(jié)果是: 160(53)=213。 cmp指令 ? (ah)=22H, (bh)=0A0H: 則 (ah)(bh)=34(96)=82H, 82H是 126的補(bǔ)碼,所以 SF=1。 cmp指令 ? cmp指令 ? 格式: cmp 操作對(duì)象 1,操作對(duì)象 2 ? 功能:計(jì)算操作對(duì)象 1–操作對(duì)象 2 但并不保存結(jié)果,僅僅根據(jù)計(jì)算結(jié)果對(duì)標(biāo)志寄存器進(jìn)行設(shè)置。 程序如下 adc指令 ? 程序: mov ax,001EH mov bx,0F000H add bx,1000H adc ax,0020H adc 指令執(zhí)行后,也可能產(chǎn)生進(jìn)位值,所以也會(huì)對(duì) CF位進(jìn)行設(shè)置。 ? 格式: adc 操作對(duì)象 1,操作對(duì)象 2 ? 功能: 操作對(duì)象 1=操作對(duì)象 1+操作對(duì)象 2+CF ? 比如: adc ax,bx 實(shí)現(xiàn)的功能是: (ax)=(ax)+(bx)+CF ? adc指令執(zhí)行過程 演示 adc指令 ? adc指令示例(一) ? mov ax,2 mov bx,1 sub bx,ax adc ax,l 執(zhí)行后, (ax)=4。 則 CPU需要對(duì)指令執(zhí)行后是否產(chǎn)生溢出進(jìn)行記錄。 OF標(biāo)志 ? 示例指令 mov al,98 add al,99 執(zhí)行后將產(chǎn)生溢出。執(zhí)行后 : (al)=30H, CF=1, 。 ? 至于我們需不需要這種影響,那就看我們?nèi)绾慰创噶钏M(jìn)行的運(yùn)算了。 ? 在計(jì)算機(jī)中 0表示邏輯假,表示否定,所以當(dāng)結(jié)果不為 0 的時(shí)候 ZF=0,表示“結(jié)果不是 0”。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1