第10章 代碼的跳轉(1)(X86匯編教程)
這一章講的是跳轉,跳轉是什么呢?跳轉就是當代碼執行到一定地方后跳到另一個地方去執行.跳轉是很重要的,有了跳轉電腦才能根據鼠標鍵盤的操作執行相應的代碼.如果沒有跳轉,電腦就只能按照設定的路一直走.管你鼠標鍵盤怎么動.一段代碼執行過去就死機了.而有了跳轉,你按下鼠標的時候電腦就能跳轉到鼠標相關代碼去執行.
不過,能根據情況判斷的跳轉是比較復雜的,要很久之后才教,這一章先教"無條件跳轉",所謂的無條件跳轉就是不管什么情況,有沒有碰到鼠標鍵盤只要運行到無條件跳轉代碼都會跳轉."圖"解↓
某行代碼
某行代碼
某行代碼
無條件跳轉代碼,向下跳3行──┐
某行代碼│
某行代碼│
某行代碼←─────────┘
某行代碼
某行代碼
就這樣,CPU碰到跳轉代碼后就會跳轉到代碼指定的地方執行.可以上跳也可以下跳.當然,不可能用行數來表達想跳轉的地方的.因為匯編終究會轉換成機器碼,機器碼可不是按行來算的,而是字節.不過,放心,我們學的是匯編,不是機器碼,我們只要告訴編譯器我們要跳轉到哪一行,匯編編譯器會自動把相差的字節數計算出來寫上去的.
那么,我們如何告訴編譯器,我們要跳轉到哪一行呢?這就得用到標號了.還記得前邊講解的匯編代碼格式嗎?在指令名前邊還能加個叫做"標號"的東西,用":"(不含雙引號)和指令區分開.實例如下↓
BiaoHao:MOV AX,BX
我們可以在匯編指令前面加個標號,然后在我們的跳轉指令里邊加上這個標號,就能跳轉到這行代碼了.
好了,說了這么多,該介紹跳轉指令了...
指令名:JMP
操作數數量:1
操作數名:內存地址(就是代碼標號啦)
指令用途 :跳轉到內存指定地方執行代碼
實例:
某行代碼
某行代碼
JMP BiaoHao
某行代碼
某行代碼
BiaoHao:MOV AX,BX
某行代碼
恩,這一章就講到這里了.
例行作業:
編寫一段程序,要求有2個以上的標號.
3次以上的跳轉
禁止跳轉到同一個地方超過2次
作業提交郵箱:o7007@vip.qq.com
提交作業請發代碼..我可不想去debug里跟蹤程序..
評論