史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2005-12-14, 03:00 PM   #6 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時
註冊日期: 2002-12-07
文章: 13533
精華: 0
現金: 26957 金幣
資產: 3024887 金幣
預設

那些是暫存器名稱

mov EAX,DWORD PTR [x1]

mov 是複製指令
EAX 是32位元 累加暫存器 全名,可容納一個DWORD資料
語法:
   31~16  15~08 07~00 bit
|--------------------------------|
|              |  AH  |  AL  | <===整個稱為 EAX
|--------------------------------|
DWORD PTR 一個雙字組(32bit)指標,指向後面變數的 記憶體位址
[x1] 表示 x1的記憶體位址
所以 DWORD PTR [x1] 表示指向x1
因為只能存放DWORD長度的資料
所以DWORD PTR [x1] 等於 90008400h
所以:
mov EAX,DWORD PTR [x1]
表示把 90008400h 放到 EAX 裡
(DWORD PTR [x1+4] 表示指向x1 再加4byte的位址,等於 A02B0001h)


至於
Q: 為什麼要用到EAX EBX ECX EDX 這麼多的暫存器?
A: 因為需要嘛~ ^^||

比如
loop 迴圈指令會用到 計數暫存器 ECX
執行到 loop 時 ECX=ECX-1
直到 ECX=0 即執行 loop 的下一條指令 (跳脫loop迴圈)
比如
語法:
;計算1加到100 (1+2+3+...+100)
start:
 xor   ax , ax   ; ax清除為0
 mov bx , ax   ; bx = 0,bx也清為零
 mov cx , 100 ; 設定迴圈次數=100
C_ADD:
 inc   bx        ; bx=bx+1
 add  ax , bx  ; ax=ax+bx
 loop C_ADD  ; cx=cx-1且重複count至cx=0
  :                ; loop結束時ax等於 (1加到100的值)
movzx 指令 (複製較小值到較大值)
比如
要將 bl 內容複製到 EAX 裡
bl 只有一個byte長度
EAX 有4個byte長度
此時就用
movzx EAX,bl

這裡有一些教學
http://140.111.104.1/kocp/mpu/m4/m4index.htm
mini 目前離線  
送花文章: 2061, 收花文章: 8087 篇, 收花: 26943 次
回覆時引用此帖
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 04:30 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2026, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1