• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 34,comments - 2,trackbacks - 0

            1、指令: jmp 段地址:偏移地址      ->修改段地址CS和偏移地址 IP
               指令: jmp 某一合法寄存器        ->僅修改IP的內容,CS不變、

            2、WINDOWS DOS 下的Debug指令
            R->查看、改變寄存器內容  “-r” 查看   “ -r ax ” 修改
            D->查看內存的內容  ①、“d 段地址:偏移地址 ”  從1000:0處開始顯示內存,共128個單元
                  ②、“d 段地址:偏移地址  結尾偏移地址” 
            E->改寫內存的內容 “e 起始地址 數據 數據 數據 ...” 聯系改寫一系列數據
            U->把內存單元翻譯成匯編指令     "u 起始地址"
            T->執行一條匯編指令
            A->命令以匯編指令的形式在內存中寫入機器碼

            3、mov 指令:①、將數據直接送入寄存器 ②、將一寄存器的內容送到另一寄存器
            ③、將一個內存單元中的內容送入一個寄存器中 “mov 寄存器名,內存單元” mov al,[0]
            ④、“MOV 內存單元地址,寄存器名 ” 將數據從寄存器送入內存單元  mov [0],al
            [...]表示一個內存單元的偏移地址,CPU自動取ds的數據作為內存單元的段地址。

            4、CS:IP  與 SS:SP操作
            CS:IP存放著當前指令的段地址和偏移地址
            SS:SP棧頂的段地址存放在SS中,偏移地址存放在SP中,任意時刻SS:SP指向棧頂元素

            5、mov  add sub  指令中寄存器 、內存單元、與普通數據的關系
            mov
            寄存器 ->數據     //注意:段寄存器不能直接mov ,要經過普通寄存器AX
            寄存器 ->內存單元
            寄存器 ->寄存器   寄存器->段寄存器
            段寄存器 ->寄存器
            段寄存器->內存單元
            內存單元->寄存器
            內存單元->段寄存器

            add    //結果放到寄存器中
            寄存器 + 數據    
            寄存器 + 內存單元
            寄存器 + 寄存器  
            段寄存器 + 寄存器
            段寄存器 + 內存單元
            內存單元 +寄存器    //數據放到內存單元中

            sub
            寄存器 - 數據    
            寄存器 - 內存單元
            寄存器 - 寄存器  
            內存單元 -寄存器    //數據放到內存單元中

            6、push與pop指令
            push 寄存器
            push 段寄存器
            push 內存單元

            pop 寄存器
            pop 段寄存器
            pop 內存單元

            注意:CPU執行push 指令是:先改變sp,后向SS:SP出傳送。執行pop指令是:先讀取SS:SP出的數據,后改變SP
            執行push、pop操作,修改的是SP,棧頂的變化范圍最大為: 0-FFFFH

            7、
            可執行文件加載入內存后,cx存放的是程序的長度、

            8、[bx]表示一個內存單元,它的偏移地址在bx 中,mov ax,[bx]。  或者mov al,[bx]。

            9、()①、寄存器、②、段寄存器、③、內存單元的物理地址
            (ax)表示ax中的內容。(al)表示al中的內容

            例如:
            (20000H)表示20000H單元的內容    ()中的內存單元的地址為物理地址
            ((ds) *16+(bx))  ds中的內容ADR1,bx內容 ADR2   內存  ADR1*16+ADR2 .ds作段地址,bx作偏移地址。

            10、cx 與 loop 指令 實現循環

            mov cx,循環次數
            s:
                  循環執行的程序段
            loop s
            注意::一些乘法可以用循環相加

            11、注意:
            ①、在匯編源程序中,數據不能以字母開頭。 mov ax,0ffffH
            ②、g命令:   “g 0012” 表示執行到當前代碼段(段地址在CS中)的0012h處
            ③、p命令:   p命令執行,debug自動重復執行loop s  和循環指令,這兩條指令。知道(cx)=0
            ④、編譯器不能識別 mov ax, [0]  他當作 mov ax ,0 處理。 但debug模式下是可以的。
            在匯編源程序中需要顯式地給出段地址所在的段寄存器,   
            mov ax,2000H
            mov ds,ax
            mov al,ds:[0]    ;顯示地給出段寄存器的地址

            posted on 2011-11-30 20:35 Yu_ 閱讀(511) 評論(0)  編輯 收藏 引用 所屬分類: 匯編
            香蕉久久av一区二区三区| 久久久久久精品免费看SSS| 久久久噜噜噜久久熟女AA片| 国产精品美女久久久| 亚洲精品无码久久不卡| 国内精品久久久久久99蜜桃| 婷婷久久五月天| 精品综合久久久久久97超人 | 亚洲综合伊人久久综合| 久久久精品久久久久特色影视| 久久综合亚洲鲁鲁五月天| 久久久久99精品成人片三人毛片| 亚洲精品午夜国产va久久| 精品熟女少妇av免费久久| 亚洲第一永久AV网站久久精品男人的天堂AV | 久久夜色精品国产亚洲av| 狠狠色丁香久久综合婷婷| 久久久久人妻一区精品| 青青青伊人色综合久久| 久久精品99久久香蕉国产色戒| 欧美午夜精品久久久久久浪潮| 国产人久久人人人人爽| 97久久婷婷五月综合色d啪蜜芽 | 无码日韩人妻精品久久蜜桃 | 亚洲美日韩Av中文字幕无码久久久妻妇| 97久久久精品综合88久久| 久久人人爽人人爽人人AV | 伊人久久大香线蕉综合Av| 色婷婷久久综合中文久久一本| 国内精品久久久久久中文字幕| 国产女人aaa级久久久级| 蜜臀久久99精品久久久久久| 久久久久久狠狠丁香| 免费精品99久久国产综合精品| 久久国产乱子精品免费女| 亚洲狠狠综合久久| 日韩精品久久久久久久电影| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 热99re久久国超精品首页| 亚洲国产精品久久久久婷婷老年| 99久久精品费精品国产|