匯編語言

寄存器的作用

EAX:accumulator,加法乘法指令的缺省寄存器

EBX:base address,內存尋址存放基地址

ECX:counter,重復(REP)前綴指令和LOOP指令的內定計數器

EDX:data,總是被用來放整數除法產生的余數

ESI:source index,在很多字符串操作指令中, DS:ESI指向源串

EDI:destination index,ES:EDI指向目標串

EBP:base pointer,函數調用時??

ESP:stack pointer,棧頂指針,堆棧從高地址向低地址增長

EFLAGS:標志寄存器

EIP:指令指針寄存器

段寄存器:

CS(code stack)?

DS(data):通常用來存放要訪問的數據的段地址

?SS(stack) ES FS GS:

尋址方式

立即數尋址:數據在指令代碼中,用常量表示。mov al,12h

寄存器尋址:數據在寄存器中,用寄存器名表示。mov al,12

存儲器尋址:數據在主存中,用存儲器地址表示。基址寄存器+變址寄存器*比例+位移量

IO尋址:數據在外設中,用IO地址表示

子程序與堆棧

調用函數

call:將下條指令壓入堆棧,轉移到目標地址

ret:將當前堆棧頂部彈出內容作為返回地址看,轉移到返回地址

參數傳遞:通用寄存器,共享變量,堆棧



將數據放入地址1000H的內存

mov bx,1000H

mov ds,bx

mov [0],al ? ? ? ? ;[0]表示一個內存單元,0表示內存單元的偏移地址;指令執行時,自動取ds中的數據為內存單元的段地址

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容