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

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

?? 指令.txt

?? 會變語言實現的一些程序
?? TXT
?? 第 1 頁 / 共 3 頁
字號:
SAL    OPR , CNT         //Byte/Word

SAL指令與SHL指令完全相同


SAR(Shift Arithmetic Right) 算術右移指令

SAR    OPR , CNT        //Byte/Word

SAR指令每次移位時,將最高位移入次高位的同時最高位值不變,最低位D0移出并移到CF.


循環移位指令

ROL ( ROtate Left) 循環左移指令

ROL    OPR , CNT        //Byte/Word

每次移位時,最高位移出并同時移到CF和最低位D0.

ROR (ROtate Right)循環右移指令

ROR    OPR,CNT    //Byte/Word

每次移位時,最低位D0移出并同時移到CF和最高位.

帶進位循環移位指令

RCL (Rotate Left through Carry)帶進位循環左移指令

RCL    OPR,CNT     //Byte/Word

RCR (Rotate Right through Carry)帶進位循環左移指令

RCR    OPR ,CNT       //Byte/Word
JMP ( JuMP ) 無條件轉移指令

名稱 
 格式 
 執行操作 
 
段內直接短跳轉 JMP    SHORT OPR IP=IP+8位偏移量 
段內直接近轉移 JMP    NEAR PTR OPR IP=IP+16位偏移量 
段內間接轉移 JMP    WORD PTR OPR IP=(EA) 
段間直接轉移 JMP    FAR PTR OPR IP=OPR偏移地址,CS=OPR段地址 
段間間接轉移 JMP    DWORD PTR OPR IP=(EA),CS=(EA+2) 

1.無條件轉移到指定的地址去執行從該地址開始的指令.

2.段內轉移是指在同一代碼段的范圍內進行轉移,只需改變IP寄存器內容.

3.段間轉移則要轉移到另一個代碼段執行程序,此時要改變IP寄存器和CS段寄存器的內容.

條件轉移指令:根據上一條指令所設置的條件碼(標志位)來判斷測試條件.

根據五個標志位:ZF、SF、OF、 PF、 CF的兩種狀態(0 FALSE或1 TRUE)產生10種測試條件.

Name Flag Flag == TRUE [1] Flag ==FALSE [ 0] 
Zero Falg ZF JZ    OPR  //結果為零轉移 JNZ    OPR  //結果不為零轉移 
Sign Falg SF JS    OPR  //結果為負轉移 JNS    OPR  //結果為正轉移 
Overflow Flag OF JO   OPR  //溢出轉移 JNO   OPR  //不溢出轉移 
Parity Flag PF JP    OPR  //結果為偶轉移 JNP    OPR  //結果為奇轉移 
Carry Flag CF JC    OPR  //有進位轉移 JNC    OPR  //無進位轉移 


兩個數比較:

情況 無符號數 有符號數 
指令 滿足條件 指令 滿足條件 
A < B JC CF==1 JL SF^OF==1 && ZF==0 
A ≥ B JNC CF==0 JNL SF^OF==0  ||  ZF==1 
A ≤ B JNA CF==1 || ZF==1 JLG SF^OF==1  ||  ZF==1 
A > B JA CF==0 && ZF==0 JG SF^OF==0 && ZF==0 

 
測試CX轉移指令

JCXZ    OPR          //CX==0時轉移


LOOP(LOOP)循環指令

LOOP           OPR 測試條件:CX ≠ 0               //OPR在程序中實際是個標號 
LOOPZ        OPR 測試條件:ZF == 1 && CX ≠ 0 
LOOPNZ     OPR 測試條件:ZF == 0 && CX ≠ 0 

執行操作: 先執行CX=CX-1,再檢測上面的測試條件,如滿足則IP=IP+符號擴展的D8,不滿足則退出循環.


過程調用及返回指令

CALL (CALL) 過程調用指令

CALL    DST            //DST在程序中實際是子程序標號

執行操作:先將過程的返回地址(即CALL的下一條指令的首地址)存入堆棧,然后轉移到過程入口地址執行子程序.

調用方式 格式 斷點保護入棧情況 過程入口地址 
段內直接 CALL  NEAR  PTR  PR1 (SP-1)(SP-2)←IP , CS不進棧 CS值保持不變,IP←DST 
段內間接 CALL  WORD PTR  (EA) (SP-1)(SP-2)←IP , CS不進棧 CS值保持不變,IP←(EA) 
段間直接 CALL  FAR  PTR  PR1 (SP-1)(SP-2)←CS , (SP-3)(SP-4)←IP IP←DST偏移地址,CS←DST段地址 
段間間接 CALL  DWORD PTR  (EA) (SP-1)(SP-2)←CS , (SP-3)(SP-4)←IP IP←(EA),CS←(EA+2) 

注:為了表明是段內調用,可使用NEAR PTR屬性操作符作說明.

RET(RETurn)子程序返回指令

RET    

RET    EXP        //帶立即數返回

子程序返回指令RET放在子程序末尾,它使子程序在執行完全部任務后返回主程序繼續執行被打斷后的程序.返回地址在子程序調用時入棧保存的斷點地址-IP或IP和CS.
CLC (CLear Carry) 進位位置0指令

CLC        //執行操作后,CF=0

CMC (CoMplement Carry) 進位位求反指令

CMC    //執行操作后,CF=!CF

STC (SeT Carry) 進位位置1指令

STC    //執行操作后,CF=1

NOP (No Operetion) 無操作指令

NOP    //此指令不執行任何操作,其機器碼占一個字節單元

HLT (HaLT) 停機指令

HLT

執行操作后,使機器暫停工作,使處理器CPU處于停機狀態,以等待一次外部中斷到來,中斷結束后,程序繼續執行,CPU繼續工作.
 同一個程序中,標號或變量只能定義一次.

標號有三種屬性:段、偏移、類型(NEAR PTR,WORD PTR,FAR PRT,DWORD PTR)

數值回送操作符:TYPE、LEGNTH、SIZE、OFFSET、SEG

TYPE    expression(or label)

如果表達式是變量,則回送該變量以字節數表示的類型:DB為 1, DW為 2, DD為 4...

如果表達式是標號,則回送該標號類型的數值:NEAR為 -1, FAR為 -2.

如果表達式是常量,則回送0.

array  DW A110H,B02CH,C322H            ADD    AX, TYPE  array  等價于 ADD    AX, 2


LENGTH    variable    對于變量使用DUP的情況,將回送分配給該變量的單元數; 對其它情況則回送1.

fees  DW 100 DUP(?)            MOV  CX, LEGNTH  fees  等價于MOV  CX, 100

 
SIZE    variable    回送分配給該變量的字節數

MOV    CX, SIZE  fees 等價于 MOV CX, 200

OFFSET    variable (or lable)        回送變量或標號的偏移地址.

MOV    BX,OFFSET OPER_ONE 等價于 LEA BX OPER_ONE 語句 ,將OPER_ONE的偏移地址送入BX

 
SEG    variable(or lable)       回送變量或標號的段地址.

若OPER_ONE是DATA_SEG數據段中的一個變量,下面語句取得DATA_SEG段首地址

MOV    DS , SEG OPER_ONE  等價于 MOV    AX , DATA_SEG            MOV    DS , AX


屬性操作符:PTR、THIS、HIGH、LOW、HIGHWORD、LOWWORD

type    PTR    expression        用來給已分配的存儲地址賦予另一種屬性,使該地址具有另一種類型.

表示按expression表達式尋址,按指定的類型type看待.

即PTR是給后面的expression操作數賦予新的數據類型或地址類型.

MOV    BYTE PTR[BX] , 5        //存入字節(Byte)單元

MOV    WORD PTR[BX] , 5    //存入字(Word)單元

 
THIS    type    指定與當前地址計數器相等的一個地址單元的類型.type是NEAR、FAR、PROC,也可以是BYPE、WORD...

first_type    EQU    THIS  BYTE

word_table    DW    100 DUP(?)    此時,first_type的偏移地址與word_table完全相同,但它是字節類型

HIGH (LOW)    express    字節分離操作符, HIGH取高位字節, LOW取低位字節.

HIGHWORD (LOWWORD)    express    字分離操作符, HIGHWORD取高位字, LOWWORD取低位字.

CONST    EQU    0ABCDH        MOV    AH, HIGHT CONST 等價于MOV    AH,0ABH

數據定義語句:

variable_name    Mnemonic     oper1, oper2.....

常用的助記符Mnemonic有:

 DB 定義字節,表示其后每個操作數占有一個字節(1Byte)單元 
 DW 定義字,表示表示其后每個操作數占有一個字(2Byte)單元 
 DD 定義雙字,表示表示其后每個操作數占有兩個字(4Byte)單元 
 DQ 定義四個字,表示表示其后每個操作數占有四個字(8Byte)單元 
 DT 定義十個字節,表示表示其后每個操作數占有十個字(10Byte)單元,形成壓縮BCD碼. 

data_byte     DB      10 , 4 , 10H , ?        //共定義了4個字節,其中 '?' 是保留單元

data_word    DW    100,?,100H            //共定義了3個字(6Byte)

str_aa            DB     'ABCDEFG'            //定義和初始化多于兩個能上能下字符的字符串時,只能使用DB偽指令.

符號定義語句(即常量)

name    EQU    expression                //定義

PURGE    name1,name2...               //解除

CONSTANT     EQU    256       //表示CONSTANT的值為256

 
段定義語句:SEGMENT ... ENDS、ASSUME、ORG

segmnet_name    SEGMENT    [align_type] [combine_type] [use_type] [class]

...

segment_name    ENDS    //SEGMENT和ENDS成對使用,把匯編語句分成段

對于數據段、附加段和堆棧段,一般是存儲單元定義、初始化數據、分配單元等偽指令.

對于代碼段,主要是指令序列和偽指令.

可選項說明:詳細信息  
定位類型align_type:說明段的起始地址就有怎有怎樣的邊界值.

        PARA    缺省項.  指定段的起始地址須從小段邊界開始,即以16進表示地址時最低位必須為0.

        BYTE     可從任何地址開始.

        WORD    必須從字的邊界開始,即段地址必須是偶數..

        DWORD  必須從雙字的邊界開始,即以16進制表示地址時最低位必須是4的倍數.

        PAGE     必須從頁的邊界開始,即以16時制表示地址時最低兩位必須為00.(能被256整除)

組合類型combine_type:說明程序連接的段合并方法.

        PRIVATE    缺省項.為私有段,連接時不與其他模塊中的同名分段合并.

        PUBLIC       將與相同名字的其它分段合并.

        COMMON  將與相同名字的其它分段合并且會產生覆蓋.

        MEMORY   同PUBLIC.

        STACK        指定該段在運行時為堆棧的一部分.

使用類型use_type:只適用386及其后繼機型,用來說明是USE16(16位尋址)還是USE32(32位尋址).

類別class:用引號中給出連接時組成段組的類型名.
 
ASSUME使匯編程序在匯編指令時,能知道各段寄存器的值.

ASSUEM    segment_registername : segment_name , segment_registername : segment_name...

任何對存存儲器或堆棧的訪問的指令,都將使用CS、DS、ES和SS段寄存器的值才能形成真正的物理地址.

ASSUME只指定某個段分配給某個寄存器,并不能把段地址裝入段寄存器.

所以,DS、ES、SS段寄存器的值必須通過MOV指令來賦予,CS段寄存器在程序初始化時自動完成.

為了給存儲單元設置起始偏移地址,可以用ORG偽指令.

ORG    表達式    //表達式的值范圍必須在0 ~ +65535

偽指令ORG可設置于代碼段、數據段的任何地方.

mydata    SEGMENT            //段定義,段名為mydata

    ORG     100H                     //置mydata段的起始偏移地址為100H

    X    DB    12H , ? , 30H     //數據定義,X 的偏移地址為0100H, X+1=0101H, X+2=0102H

    Z    DD    9C56H               //Z的偏移地址為0103H

mydata    ENDS

 

mycode    SEGMENT

    ASSUME    CS : mycode ,  DS : mydata    //用ASSUME偽指令分配段寄存器

    start:     MOV AX , mydata  //等價于MOV AX , SEG X語句, 將mydata段的起始地址裝入到DS

                  MOV DS , AX

    ...

mycode    ENDS

    END     start      //源程序結束指令END, 其中start為lable

 

 

過程定義語句:PROC ... ENDP

procedure_name    PROC    [ NEAR | FAR ]        //要說明是NEAR過程或FAR過程.

...

RET        //RET 返回指令必須與[ NEAR  |  FAR ] 對應

procedure_name    ENDP        //PROC 和ENDP必須有名字,兩者成對出現.

 

 

宏指令語句:MACRO...ENDM

macro_name    MACRO    [ parameter_list ]    //形參 parameter_list 可選,有多個參數時,中間用逗號隔開.

...

ENDM

MULTIPLY    MACRO    OPR1 , OPR2 , RESULT    //宏定義,宏名MULTIPLY,形參為OPR1,OPR2和RESULT

        PUSH    DX

        PUSH    AX

        MOV    AX , OPR1

        IMUL    OPR2

        MOV    RESULT , AX

        POP    AX

        POP    DX

ENDM

 

MULTIPLY    240 , BX , SAVE    //宏調用,實參為240 , BX , SAVE

 

宏指令與子程序的區別:

子程序產生目標代碼少,占用內存少,但執行時間長,速度慢.

宏指令產生目標代碼長,占用內存多,但執行時間短,速度快.

 

 

程序開始和結束語句:NAME | TITLE、END

模塊名:NAME    moudle_name

標題名:TITLE    text

源程序結束指令:END    [ lable ]
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品久久综合| 中文字幕色av一区二区三区| 亚洲成人你懂的| 波多野结衣在线一区| 精品剧情v国产在线观看在线| 亚洲国产精品久久久久婷婷884| 成人精品国产免费网站| 欧美精品一区二区久久婷婷| 日本大胆欧美人术艺术动态| 欧美美女激情18p| 亚洲男女一区二区三区| 成人va在线观看| 国产农村妇女毛片精品久久麻豆| 亚洲成人动漫av| 99精品视频一区| 国产精品久久久久影院| 国产一区二区三区在线观看精品 | 国产高清在线精品| 777xxx欧美| 亚洲一区在线电影| 色哟哟国产精品| 国产精品黄色在线观看| 国产成人午夜99999| 337p日本欧洲亚洲大胆精品 | 国产校园另类小说区| 另类中文字幕网| 91精品国产综合久久小美女| 视频一区二区三区入口| 欧美美女一区二区在线观看| 日韩av成人高清| 91精品国产综合久久久蜜臀粉嫩| 日韩国产在线一| 91精品国产欧美一区二区18| 日韩成人一区二区三区在线观看| 67194成人在线观看| 麻豆久久久久久久| 欧美精品一区二区精品网| 国产一区二区三区在线观看免费视频 | 国产精品国产a级| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 91免费精品国自产拍在线不卡| 日韩码欧中文字| 色94色欧美sute亚洲线路一ni| 亚洲自拍偷拍麻豆| 欧美一区午夜精品| 狠狠网亚洲精品| 久久久美女毛片| 97精品久久久午夜一区二区三区| 亚洲三级在线免费| 欧美日韩卡一卡二| 免费黄网站欧美| 久久久久久亚洲综合影院红桃| 成人免费黄色大片| 一个色妞综合视频在线观看| 欧美日免费三级在线| 日本亚洲电影天堂| 久久综合九色综合欧美98| 国产91精品久久久久久久网曝门 | 久久久午夜电影| aaa欧美日韩| 亚洲丰满少妇videoshd| 日韩亚洲电影在线| 顶级嫩模精品视频在线看| 亚洲免费在线播放| 日韩视频在线观看一区二区| 国产99久久久国产精品潘金| 亚洲女女做受ⅹxx高潮| 在线成人高清不卡| 国产成人免费xxxxxxxx| 亚洲在线成人精品| 欧美成人猛片aaaaaaa| 91一区一区三区| 日韩av一二三| 国产精品毛片久久久久久| 欧美三级日本三级少妇99| 国产在线精品免费av| 亚洲裸体xxx| 欧美电视剧在线看免费| 成人亚洲一区二区一| 亚洲国产欧美在线| 久久久三级国产网站| 欧美系列在线观看| 国产美女视频91| 亚洲成a人v欧美综合天堂| 国产三级三级三级精品8ⅰ区| 在线观看免费视频综合| 国产美女一区二区| 图片区日韩欧美亚洲| 国产日韩高清在线| 欧美夫妻性生活| 成人国产在线观看| 久久精品国产秦先生| 亚洲男女一区二区三区| 久久久综合视频| 欧美日韩一级片网站| 成人免费av网站| 日本美女视频一区二区| 亚洲精品视频观看| 久久久一区二区三区捆绑**| 欧美日韩一区成人| 91麻豆成人久久精品二区三区| 九色porny丨国产精品| 一区二区三区免费网站| 久久精子c满五个校花| 在线不卡中文字幕播放| 91在线高清观看| 国产成人精品免费一区二区| 奇米影视一区二区三区小说| 一区二区三区丝袜| 日本一区二区不卡视频| 精品国产百合女同互慰| 欧美精品少妇一区二区三区| 97se亚洲国产综合自在线观| 国产在线国偷精品免费看| 日本91福利区| 午夜婷婷国产麻豆精品| 一区二区三区四区中文字幕| 国产欧美va欧美不卡在线| 精品国产成人系列| 欧美日韩精品一区二区三区蜜桃| 成人h动漫精品一区二区| 青青青爽久久午夜综合久久午夜| 成人免费视频在线观看| 欧美变态tickling挠脚心| 在线精品视频一区二区| 成人va在线观看| 国产精品综合网| 免费视频一区二区| 亚洲电影中文字幕在线观看| 国产精品伦理在线| 欧美成人女星排行榜| 69久久夜色精品国产69蝌蚪网| 91蝌蚪国产九色| 国产一区亚洲一区| 国模娜娜一区二区三区| 久久99最新地址| 免费高清视频精品| 麻豆一区二区三| 蜜桃视频在线一区| 奇米精品一区二区三区在线观看| 日韩精品福利网| 日本中文字幕一区二区视频| 日产精品久久久久久久性色| 日韩精品久久久久久| 日本中文字幕不卡| 另类调教123区| 久久99国产精品尤物| 久久成人精品无人区| 激情五月婷婷综合网| 久久99最新地址| 国产麻豆午夜三级精品| 国产成人综合亚洲91猫咪| 久久99精品久久久久久动态图 | 成人一区二区视频| 国产91精品久久久久久久网曝门 | 日产国产欧美视频一区精品| 日韩电影免费在线看| 七七婷婷婷婷精品国产| 麻豆精品国产传媒mv男同| 久久99久久99| 国产99一区视频免费| 97精品视频在线观看自产线路二| 色又黄又爽网站www久久| 欧美少妇xxx| 欧美一区二区高清| 精品国产人成亚洲区| 国产午夜亚洲精品不卡| 国产精品福利一区| 亚洲一区二区三区国产| 视频在线在亚洲| 老司机午夜精品99久久| 国产伦精品一区二区三区视频青涩 | 久久久久99精品国产片| 中文字幕在线观看不卡| 一区二区三区在线视频观看| 亚洲18女电影在线观看| 免费精品视频在线| 懂色av一区二区三区免费观看| 99久久精品费精品国产一区二区| 欧美影院一区二区| 日韩精品综合一本久道在线视频| 久久久久久久综合狠狠综合| 成人免费视频在线观看| 亚洲午夜精品在线| 久久69国产一区二区蜜臀| 高清不卡在线观看| 在线免费观看成人短视频| 日韩亚洲国产中文字幕欧美| 欧美激情一区不卡| 亚洲午夜免费电影| 国产伦精品一区二区三区免费迷 | 9191国产精品| 国产精品美女久久久久aⅴ国产馆| 亚洲电影视频在线| 高清在线不卡av| 91精品国产色综合久久不卡电影 | 中文字幕在线一区免费| 日本不卡高清视频| 91网站在线播放| 久久综合色一综合色88|