English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

http://s89tsvs81234.myweb.hinet.net/Q.JPG
程式碼為上圖..
請問一下..為何執行到箭頭處ax=0302,cl=06
我用debug追蹤時看到Lea那段指令就不懂了...
有人可以幫忙解釋一下嗎?
謝謝

2006-04-09 09:56:06 · 1 個解答 · 發問者 Ivan 2 in 電腦與網際網路 軟體

1 個解答

LEA BX,MSG1 ; 算出MSG1的偏移值放在BX中
MOV AX,WORD PTR [BX][SI] ;因為你前面SI=2所以從MSG1再偏移兩個byte的地方,或者也可以說從陣列MSG1的第二個元素開始,要取出一個word,那麼MSG1第零個元素是0,第一個元素是1,第二個元素是2,也就是這裏開始,取一個word的資料,AX就是0302了(AL=02,AH=03)
MOV CL,[BX][SI+4]; 同樣的,SI還是2,加4就是6,取MSG1偏移6個byte的地方,也就是MSG1陣列的第6個元素就是6放到CL

2006-04-10 13:17:51 · answer #1 · answered by chan 5 · 0 0

fedest.com, questions and answers