寄存器的作用
EAX:accumulator玉掸,加法乘法指令的缺省寄存器
EBX:base address耀里,內(nèi)存尋址存放基地址
ECX:counter道媚,重復(fù)(REP)前綴指令和LOOP指令的內(nèi)定計數(shù)器
EDX:data,總是被用來放整數(shù)除法產(chǎn)生的余數(shù)
ESI:source index乓诽,在很多字符串操作指令中, DS:ESI指向源串
EDI:destination index,ES:EDI指向目標串
EBP:base pointer咒程,函數(shù)調(diào)用時鸠天??
ESP:stack pointer帐姻,棧頂指針稠集,堆棧從高地址向低地址增長
EFLAGS:標志寄存器
EIP:指令指針寄存器
段寄存器:
CS(code stack)?
DS(data):通常用來存放要訪問的數(shù)據(jù)的段地址
?SS(stack) ES FS GS:
尋址方式
立即數(shù)尋址:數(shù)據(jù)在指令代碼中,用常量表示饥瓷。mov al,12h
寄存器尋址:數(shù)據(jù)在寄存器中剥纷,用寄存器名表示。mov al,12
存儲器尋址:數(shù)據(jù)在主存中呢铆,用存儲器地址表示晦鞋。基址寄存器+變址寄存器*比例+位移量
IO尋址:數(shù)據(jù)在外設(shè)中棺克,用IO地址表示
子程序與堆棧
調(diào)用函數(shù)
call:將下條指令壓入堆棧悠垛,轉(zhuǎn)移到目標地址
ret:將當(dāng)前堆棧頂部彈出內(nèi)容作為返回地址看,轉(zhuǎn)移到返回地址
參數(shù)傳遞:通用寄存器娜谊,共享變量确买,堆棧
將數(shù)據(jù)放入地址1000H的內(nèi)存
mov bx,1000H
mov ds,bx
mov [0],al ? ? ? ? ;[0]表示一個內(nèi)存單元,0表示內(nèi)存單元的偏移地址纱皆;指令執(zhí)行時拇惋,自動取ds中的數(shù)據(jù)為內(nèi)存單元的段地址