亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 匯005.txt

?? 會變語言實現的一些程序
?? TXT
?? 第 1 頁 / 共 5 頁
字號:

受影響的標志位:CF、OF、PF、SF和ZF(AF無定義)。

算術移位指令的功能描述如下,具體功能下圖(a)、(b)所示。

算術左移SAL把目的操作數的低位向高位移,空出的低位補0;
  算術右移SAR把目的操作數的高位向低位移,空出的高位用最高位(符號位)填補。


 
 
(a)、SAL (b)、SAR 

例5.10 已知(AH)=12H,(BL)=0A9H,試給出分別用算術左移和右移指令移動1位后,寄存器AH和BL的內容。

解:用算術左移和右移指令移動1位后,寄存器AH和BL的結果如下表所示。

操作數的初值
 執行的指令
 執行后操作數的內容
 
(AH)=12H
 SAL  AH, 1
 (AH)=24H
 
(BL)=0A9H
 SAL  BL, 1
 (BL)=52H
 
(AH)=12H
 SAR  AH, 1
 (AH)=09H
 
(BL)=0A9H
 SAR  BL, 1
 (BL)=0D4H
 

下面是學習和理解算術移位指令的控件。它簡單、直觀地表達了該移位指令的功能,通過它,學習者可準確地掌握計算機系統中該移位指令的含義。

在該控件中,操作者可隨機生成第一操作數,也可自行輸入之。為了便于比較,在執行指令前,把原操作數的內容存入“操作前的數據”中。



思考題:下面有兩組指令序列,問每組指令執行后,寄存器AX的不會變化嗎?

SAL AX, 1
SAR AX, 1 
 SAR AX, 1
SAL AX, 1 
2、邏輯移位指令
此組指令有:邏輯左移SHL(Shift Logical Left)和邏輯右移SHR(Shift Logical Right)。它們的指令格式如下:

SHL/SHR Reg/Mem, CL/Imm

受影響的標志位:CF、OF、PF、SF和ZF(AF無定義)。

邏輯左移/右移指令只有它們的移位方向不同,移位后空出的位都補0。它們的具體功能下圖(a)、(b)所示。


 
 
(a)、SHL (b)、SHR 

例5.11 已知(AH)=12H,(BL)=0A9H,試給出分別用邏輯左移和右移指令移動1位后,寄存器AH和BL的內容。

解:用算術左移和右移指令移動1位后,寄存器AH和BL的結果如下表所示。

操作數的初值
 執行的指令
 執行后操作數的內容
 
(AH)=12H
 SHL  AH, 1
 (AH)=24H
 
(BL)=0A9H
 SHL  BL, 1
 (BL)=52H
 
(AH)=12H
 SHR  AH, 1
 (AH)=09H
 
(BL)=0A9H
 SHR  BL, 1
 (BL)=54H
 

學習和理解邏輯移位指令的控件。
3、雙精度移位指令
此組指令有:雙精度左移SHLD(Shift Left Double)和雙精度右移SHRD(Shift Right Double)。它們都是具有三個操作數的指令,其指令的格式如下:

SHLD/SHRD  Reg/Mem, Reg, CL/Imm    ;80386+

其中:第一操作數是一個16位/32位的寄存器或存儲單元;第二操作數(與前者具有相同位數)一定是寄存器;第三操作數是移動的位數,它可由CL或一個立即數來確定。

在執行SHLD指令時,第一操作數向左移n位,其“空出”的低位由第二操作數的高n位來填補,但第二操作數自己不移動、不改變。

在執行SHRD指令時,第一操作數向右移n位,其“空出”的高位由第二操作數的低n位來填補,但第二操作數自己也不移動、不改變。

SHLD和SHRD指令的移位功能示意圖如圖5.8所示。

受影響的標志位:CF、OF、PF、SF和ZF(AF無定義)


 
 
(a)、SHLD
 (b)、SHRD
 

圖5.8 雙精度移位指令操作示意圖

下面是幾個雙精度移位的例子及其執行結果。

雙精度移位指令
 指令操作數的初值
 指令執行后的結果
 
SHLD  AX, BX, 1
 (AX)=1234H,(BX)=8765H
 (AX)=2469H
 
SHLD  AX, BX, 3
 (AX)=1234H,(BX)=8765H
 (AX)=91A4H
 
SHRD  AX, BX, 2
 (AX)=1234H,(BX)=8765H
 (AX)=448DH
 
SHRD  AX, BX, 4
 (AX)=1234H,(BX)=8765H
 (AX)=5123H
 

學習和理解雙精度移位指令的控件。
4、循環移位指令
循環移位指令有:循環左移ROL(Rotate Left)和循環右移ROR(Rotate Right)。

指令的格式:ROL/ROR Reg/Mem, CL/Imm

受影響的標志位:CF和OF

循環左移/右移指令只是移位方向不同,它們移出的位不僅要進入CF,而且還要填補空出的位。具體功能如下圖(a)、(b)所示。

  
(a)、ROL
 (b)、ROR
 

下面是幾個循環移位的例子及其執行結果。

循環移位指令
 指令操作數的初值
 指令執行后的結果
 
ROL  AX, 1
 (AX)=6789H
 (AX)=0CF12H
 
ROL  AX, 3
 (AX)=6789H
 (AX)=3C4BH
 
ROR  AX, 2
 (AX)=6789H
 (AX)=59E2H
 
ROR  AX, 4
 (AX)=6789H
 (AX)=9678H
 

學習和理解不帶進位的循環移位指令的控件。
5.2.6 位操作指令
1、位掃描指令(Bit Scan Instruction)

指令的格式:BSF/BSR Reg, Reg/Mem     ;80386+

受影響的標志位:ZF

位掃描指令是在第二個操作數中找第一個“1”的位置。如果找到,則該“1”的位置保存在第一操作數中,并置標志位ZF為1,否則,置標志位ZF為0。

根據位掃描的方向不同,指令分二種:正向掃描指令和逆向掃描指令。

、正向掃描指令BSF(Bit Scan Forward)從右向左掃描,即:從低位向高位掃描;
、逆向掃描指令BSR(Bit Scan Reverse)從左向右掃描,即:從高位向低位掃描。

 

(a) BSF
 

(b) BSR
  
例如:

MOV AX, 1234H
BSF CX, AX       ;指令執行后,(CX)=2
BSR CX, AX       ;指令執行后,(CX)=12

2、位檢測指令(Bit Test Instruction)

指令的格式:BT/BTC/BTR/BTS Reg/Mem, Reg/Imm    ;80386+
受影響的標志位:CF

位檢測指令是把第一個操作數中某一位的值傳送給標志位CF,具體的哪一位由指令的第二操作數來確定。

根據指令中對具體位的處理不同,又分一下幾種指令:

BT:把指定的位傳送給CF;
BTC:把指定的位傳送給CF后,還使該位變反;
BTR:把指定的位傳送給CF后,還使該位變為0;
BTS:把指定的位傳送給CF后,還使該位變為1;
 

圖5.11 位檢測指令的功能示意圖
 

例如:假設(AX)=1234H,分別執行下面指令。

BT  AX, 2      ;指令執行后,CF=1,(AX)=1234h
BTC AX, 6       ;指令執行后,CF=0,(AX)=1274h
BTR AX, 10      ;指令執行后,CF=0,(AX)=1234h
BTS AX, 14      ;指令執行后,CF=0,(AX)=5234h

3、檢測位指令TEST(Test Bits Instruction)

檢測位指令是把二個操作數進行邏輯“與”操作,并根據運算結果設置相應的標志位,但并不保存該運算結果,所以,不會改變指令中的操作數。在該指令后,通常用JE、JNE、JZ和JNZ等條件轉移指令。

指令的格式:TEST  Reg/Mem, Reg/Mem/Imm

受影響的標志位:CF(0)、OF(0)、PF、SF和ZF(AF無定義)

例如:

TEST AX, 1       ;測試AX的第0位
TEST CL, 10101B    ;測試CL的第0、2、4位

下面是學習和掌握乘法類指令的控件,可模擬執行BSF、BSR、BT、BTC、BTR、BTS和TEST等指令。
5.2.7 比較運算指令
在程序中,我們要時常根據某個變量或表達式的取值去執行不同指令,從而使程序表現出有不同的功能。為了配合這樣的操作,在CPU的指令系統中提供了各種不同的比較指令。通過這些比較指令的執行來改變有關標志位,為進行條件轉移提供依據。

1、比較指令CMP(Compare Instruction)

指令的格式:CMP Reg/Mem, Reg/Mem/Imm

受影響的標志位:AF、CF、OF、PF、SF和ZF

指令的功能:用第二個操作數去減第一個操作數,并根據所得的差設置有關標志位,為隨后的條件轉移指令提供條件。但并不保存該差,所以,不會改變指令中的操作數。

2、比較交換指令(Compare And Exchange Instruction)

在數據傳送類指令中,我們介紹了交換指令XCHG,它不管二個操作數的值是什么,都無條件地進行交換。而比較交換指令,是先進行比較,再根據比較的結果決定是否進行操作數的交換操作。

比較交換指令的功能:當二個操作數相等時,置標志位ZF為1;否則,把第一操作數的值賦給第二操作數,并置標志位ZF為0。

、8位/16位/32位比較交換指令

指令的格式:CMPXCHG Reg/Mem, AL/AX/EAX    ;80486+
受影響的標志位:AF、CF、OF、PF、SF和ZF
MASM 6.11中指令的描述與此不同,它沒有限定第二操作數的要求。

、64位比較交換指令

該指令只有一個操作數,第二個操作數EDX:EAX是隱含的。

指令的格式:CMPXCHG8B Reg/Mem      ;Pentium+
受影響的標志位:ZF

例如:假設(AX)=1234H,(BX)=1234H,(CX)=4321H。

CMPXCHG BX, AX    ;指令執行后,ZF=1
CMPXCHG CX, AX    ;指令執行后,ZF=0,(AX)=4321H,CX的值不變

3、字符串比較指令(Compare String Instruction)

參見后面第5.2.11節——字符串操作類指令——的敘述。
5.2.8 循環指令
循環結構是程序的三大結構之一。為了方便構成循環結構,匯編語言提供了多種循環指令,這些循環指令的循環次數都是保存在計數器CX或ECX中。除了CX或ECX可以決定循環是否結束外,有的循環指令還可由標志位ZF來決定是否結束循環。

在高級語言中,循環計數器可以遞增,也可遞減,但匯編語言中,CX或ECX只能遞減,所以,循環計數器只能從大到小。在程序中,必須先把循環次數賦給循環計數器。

匯編語言的循環指令都是放在循環體的下面,在循環時,首先執行一次循環體,然后把循環計數器CX或ECX減1。當循環終止條件達到滿足時,該循環指令下面的指令將是下一條被執行的指令,否則,程序將向上轉到循環體的第一條指令。

在循環未終止,而向上轉移時,規定:該轉移只能是一個短轉移,即偏移量不能超過128,也就是說循環體中所有指令碼的字節數之和不能超過128。如果循環體過大,可以用后面介紹的“轉移指令”來構造循環結構。

循環指令本身的執行不影響任何標志位。

1、循環指令(Loop Until Complete)

循環指令LOOP的一般格式:

LOOP 標號
LOOPW 標號      ;CX作為循環計數器,80386+
LOOPD 標號      ;ECX作為循環計數器,80386+

循環指令的功能描述:
 

圖5.12 循環指令LOOP的功能示意圖
 
 (CX)=(CX)-1或(ECX)=(ECX)-1; 
 如果(CX)≠0或(ECX)≠0,轉向“標號”所指向的指令,否則,終止循環,執行該指令下面的指令。 

例5.13 編寫一段程序,求1+2+…+1000之和,并把結果存入AX中。

解: 
 方法1:因為計數器CX只能遞減,所以,可把求和式子改變為:1000+999+…+2+1。 
XOR AX, AX 
MOV CX, 1000D 
again: ADD AX, CX ;計算過程:1000+999+…+2+1 
LOOP again 
方法2:不用循環計數器進行累加,求和式子仍為:1+2+…+999+1000。 
XOR AX, AX 
MOV CX, 1000D 
MOV BX, 1 
again: ADD AX, BX ;計算過程:1+2+…+999+1000 
INC BX 
LOOP again 

從程序段的效果來看:方法1要比方法2好。
2、相等或為零循環指令(Loop While Equal or Loop While Zero)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91精品入口| 欧美一区二区三区影视| 欧美日韩色一区| 久久久久国产一区二区三区四区 | 日韩一级欧美一级| 亚洲国产成人一区二区三区| 午夜精品久久久久久久| 成人在线一区二区三区| 日韩一级成人av| 一区二区理论电影在线观看| 国产一区999| 在线电影一区二区三区| 亚洲日本va在线观看| 国产精品66部| 日韩精品一区二区三区四区| 亚洲第一福利视频在线| 99久久精品国产麻豆演员表| 久久久精品黄色| 久热成人在线视频| 欧美一级免费大片| 亚洲高清不卡在线观看| 97精品久久久午夜一区二区三区 | 欧美日韩1234| 亚洲欧美电影一区二区| 成人综合婷婷国产精品久久| 精品国产露脸精彩对白| 青青青伊人色综合久久| 欧美撒尿777hd撒尿| 一区二区三区在线免费视频| 成人黄色软件下载| 国产精品免费人成网站| 懂色av一区二区夜夜嗨| 久久午夜电影网| 国产乱子伦一区二区三区国色天香| 56国语精品自产拍在线观看| 丝袜美腿成人在线| 欧美日韩一区三区四区| 午夜久久久影院| 欧美一区三区四区| 精品夜夜嗨av一区二区三区| 日韩女优电影在线观看| 国产在线播精品第三| 精品国产乱码久久久久久久 | 国产在线看一区| 久久精品网站免费观看| 国产成人免费高清| 国产精品三级久久久久三级| va亚洲va日韩不卡在线观看| 1区2区3区国产精品| 色悠悠亚洲一区二区| 亚洲精品国产一区二区三区四区在线| 91亚洲国产成人精品一区二区三| 亚洲乱码日产精品bd| 欧美视频一二三区| 蜜臀va亚洲va欧美va天堂| 欧美成人伊人久久综合网| 国产一区二区免费在线| 久久免费美女视频| 99热99精品| 偷窥少妇高潮呻吟av久久免费 | 色悠久久久久综合欧美99| 亚洲亚洲精品在线观看| 日韩欧美在线影院| www.日韩av| 亚洲va欧美va人人爽午夜| 欧美成人一区二区三区在线观看| 国产不卡免费视频| 亚洲综合免费观看高清在线观看| 51午夜精品国产| 成人午夜伦理影院| 日日摸夜夜添夜夜添精品视频 | 国产精品沙发午睡系列990531| 一本大道久久a久久精二百| 日韩高清一区在线| 国产精品―色哟哟| 91精品国产乱码久久蜜臀| 粉嫩av一区二区三区| 午夜国产不卡在线观看视频| 久久精品在这里| 91精品国产一区二区| a在线播放不卡| 精品一区二区综合| 亚洲一二三四久久| 国产欧美日韩精品一区| 9191久久久久久久久久久| 成人一区二区三区| 日本美女一区二区三区| 亚洲人成网站影音先锋播放| 精品美女被调教视频大全网站| 在线视频国内一区二区| 成人做爰69片免费看网站| 男人的天堂久久精品| 一区二区三区中文在线| 国产精品丝袜黑色高跟| 精品欧美乱码久久久久久| 欧美性生活一区| 成人动漫一区二区在线| 国产综合久久久久影院| 日韩一区欧美二区| 亚洲一级二级在线| 亚洲欧美在线高清| 国产精品美女久久久久aⅴ国产馆| 欧美精品在欧美一区二区少妇| 97久久精品人人澡人人爽| 国产成人精品免费网站| 久久99精品久久久久久| 天天综合色天天综合色h| 亚洲一区在线电影| 国产精品激情偷乱一区二区∴| 2020国产成人综合网| 欧美成人艳星乳罩| 日韩欧美在线网站| 日韩欧美在线1卡| 欧美高清精品3d| 欧美日韩国产精选| 欧美日本一区二区三区四区| 欧美亚洲高清一区二区三区不卡| 色婷婷亚洲综合| 欧洲国内综合视频| 欧美亚洲一区三区| 欧美日韩国产经典色站一区二区三区 | 无码av免费一区二区三区试看| 一区二区三区在线观看视频| 一区二区三区精品| 婷婷成人综合网| 首页综合国产亚洲丝袜| 三级不卡在线观看| 极品少妇xxxx偷拍精品少妇| 国内一区二区视频| 国产成人综合在线观看| 国产99精品国产| 91猫先生在线| 欧美酷刑日本凌虐凌虐| 日韩精品在线一区| 中文字幕乱码亚洲精品一区| 国产精品福利一区二区三区| 亚洲视频免费看| 偷拍日韩校园综合在线| 美女精品自拍一二三四| 国产精品18久久久久久久久| 91视频一区二区三区| 欧美日韩一区二区三区四区| 日韩视频一区二区三区| 欧美国产乱子伦| 一区二区三区蜜桃网| 日本亚洲最大的色成网站www| 激情国产一区二区 | 国产精品私人影院| 亚洲一区二区三区四区在线| 免费看黄色91| av成人免费在线观看| 欧美人动与zoxxxx乱| 久久久亚洲精品石原莉奈| 亚洲桃色在线一区| 蜜臀久久99精品久久久画质超高清 | gogogo免费视频观看亚洲一| 欧美日韩一区二区三区高清| 精品国产1区二区| 亚洲男人的天堂网| 精品影院一区二区久久久| 99国产一区二区三精品乱码| 91麻豆精品国产91久久久更新时间 | 日韩一区二区在线观看视频播放| 国产亚洲综合性久久久影院| 亚洲第一电影网| 高潮精品一区videoshd| 91精品国产手机| 亚洲欧美色综合| 国产精品系列在线播放| 欧美日韩国产免费一区二区 | 日韩免费看的电影| 亚洲在线视频一区| 成人一区在线看| 日韩你懂的在线播放| 亚洲一二三级电影| 99精品1区2区| 中文欧美字幕免费| 捆绑变态av一区二区三区| 在线视频国内自拍亚洲视频| 欧美精彩视频一区二区三区| 日本免费新一区视频| 在线国产亚洲欧美| 国产精品福利电影一区二区三区四区| 蜜臀av一级做a爰片久久| 在线一区二区视频| 亚洲欧美在线视频| 福利电影一区二区| 欧美精品一区二区三区在线 | 中文字幕乱码日本亚洲一区二区| 视频一区二区三区中文字幕| 欧美日韩一级大片网址| 国产精品欧美精品| 国产精品一区二区91| 精品sm捆绑视频| 看片网站欧美日韩| 精品日韩欧美在线| 美女看a上一区| 亚洲精品在线一区二区| 久久精品国产久精国产爱| 日韩欧美一区中文|