当前位置: 代码迷 >> 汇编语言 >> ●eax,ebx,ecx,edx等等寄存器书上讲得太抽象了?有些不懂,或者是理解异常的地方,请大家指点
  详细解决方案

●eax,ebx,ecx,edx等等寄存器书上讲得太抽象了?有些不懂,或者是理解异常的地方,请大家指点

热度:2627   发布时间:2013-02-26 00:00:00.0
●●●eax,ebx,ecx,edx等等寄存器书上讲得太抽象了?有些不懂,或者是理解错误的地方,请大家指点
书上说,AX累加器,bx,cx,dx是通用寄存器,分别用作基址变址,
计数器,数据,那么eax,ebx,ecx,edx也分别是累加器,基址变址,计数器,数据 吧?

基址变址:是什么意思?
下面代码为什么GetModuleHandle的返回值默认在eax里面,不在edx,ebx,ecx里面呢?eax是累加器,难道说累加器,
是专门得到函数的返回值得么?
-----------------------------------------------------
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
invoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start
-----------------------------------------------------------------
又如下面代码,怎么又把数据村到esi里面了,原来都是存在eax里面的?
又突然冒来个push ebp? ebp又是做什么的?还有就是mov fs:[0],esp这句话也不懂。
即便看了教材,也对应不上这寄存器的含义,书上讲得太抽象了?麻烦各位给讲讲,谢谢了


--------------------------------------------------------------
.386
.model flat, stdcall
option casemap :none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include comdlg32.inc
includelib comdlg32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Equ 等值定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ICO_MAIN equ 1000
DLG_MAIN equ 1000
IDC_INFO equ 1001
IDM_MAIN equ 2000
IDM_OPEN equ 2001
IDM_EXIT equ 2002
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data?
hInstance dd ?
hRichEdit dd ?
hWinMain dd ?
hWinEdit dd ?
szFileName db MAX_PATH dup (?)

.const
szDllEdit db 'RichEd20.dll',0
szClassEdit db 'RichEdit20A',0
szFont db '宋体',0
szExtPe db 'PE Files',0,'*.exe;*.dll;*.scr;*.fon;*.drv',0
db 'All Files(*.*)',0,'*.*',0,0
szErr db '文件格式错误!',0
szErrFormat db '这个文件不是PE格式的文件!',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  相关解决方案