<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                cpu執行何處的指令取決于CS:IP,可以通過改變、ip中的內容來控制要執行的目標命令 改變CS、IP的值: ~~**指令修改:**~~ 8086cpu不提供對cs和ip修改的指令,如下指令是錯誤的 ``` mov cs 2000H mov ip 2000H ``` ![](https://img.kancloud.cn/20/f7/20f7b47334b55a07dc0163874f09d526_358x135.png) ## **修改cs\ip的值** **方法1**:debug中的R命令可以改變寄存器的值 rcs、rip(只是調試手段,并非程序方式) ``` r+空格+寄存器名(cs\ip)+回車+想要的段地址 ``` **方法2:跳轉指令jmp** 同時修改cs、ip的內容 ``` //用指令中給出的段地址修改cs、偏移地址修改ip jmp 段地址:偏移地址 ``` ``` //執行后: CS=2AE3H, IP=0003H, CPU將從2AE33H處讀取指令。. jmp 2AE3:3 //執行后: CS=0003H, IP=0B16H, CPU將從00B46H處讀取指令。 jmp 3:0B16 ``` 僅修改ip的內容:jmp:某一合法寄存器 ``` jmp ax //類似于 mov ip,ax jmp bx //類似于 mov ip,bx ``` 用寄存器中的值修改IP 內存中存放的機器碼和對應的匯編指令情況如下圖所示, 假設CPU初始狀態:CS=2000H, IP=0000H.請寫出指令執行序列。 ![](https://img.kancloud.cn/ad/4b/ad4b86eb97a668abd5e430f36a525e40_1194x570.png) 執行過程如下。 (1)當前CS=2000H, IP=0000H,則CPU從內存2000Hx16+0=20000H處讀取指令,讀入的指令是: B8 22 66(mov ax,6622H),讀入后1P=IP+3-=0003H (2)執行后, CS=2000 , IP=0003H,則CPU從內存2000H X 16+0003H=20003H處讀取指令,讀入的指令是: EA 03 00 00 10(jmp 1000:0003), 讀入后IP=IP+5=0008H; (3)指令執行后, CS=1000H, IP=0003H,則CPU從內存1000H × 16+0003H=10003H處讀取指令,讀入的指令是: B8 00 00(mov ax,0000),讀入后IP=IP+3=0006H; (4)指令執行后, CS=1000H, IP=0006H,則CPU從內存1000H× 16+0006H=10006H處讀取指令,讀入的指令是: 8B D8(mov bx,ax),讀入后IP=IP+2=0008H (5)指令執行后, CS=1000H, IP=0008H,則CPU從內存1000H × 16+0008H=10008H處讀取指令,讀入的指令是: FF E3(jmp bx),讀入后IP=IP+2=000AH; (6)指令執行后, CS=1000H, IP=0000H, CPU從內存10000H處讀取指令經分析后,可知指令執行序列為: (1) mov ax,6622F (2) jmp 1000:3 (3) mov ax,0000 (4) mov bx,ax (5) jmp bx (6) mov ax,0123H (7)轉到第3步執行
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看