2/26/10

Assembly පාඩම 5

මොකද්ද මේ CPU Registers

CPU Registers කියන්නෙ CPU කේ තියෙන විශේශ මෙමරි Location වගයකට,මේ CPU Registers 3කට බෙදෙනවා
  1. 8 bit
  2. 16 bit
  3. 32 bit
Address(ලිපිනය) Name(සාමාන්‍ය නම) Description(විස්තරය)
EAX* Accumulator Register ගණීත කර්ම හා ප්‍රතිඵල ගණනය කිරීමට යොදා ගනී
EBX Base Register DS කොටසේ ඇති දත්ත වලට යොමු(pointer) ලබාදීම
ECX* Count Register loop මෙහෙයුම් කර්ම සිදුකරයි
EDX* Data Register input/outputයොමු(pointer) සඳහා භාවිතා වේ
ESI Source Index string වර්ගයේ කර්මයන්ට(operations) මූල යොමුව ලෙස භාවිතා වේ
EDI Destination Index
ESP Stack Pointer
EBP Base Pointer

(මෙහි * ලකුනින් පෙන්වා ඇති ඒවා පමනක් windows programming සදහා භාවිතා වේ)


Address(ලිපිනය) Name(සාමාන්‍ය නම) Description(විස්තරය)
CS Code Segment executed වීම ආරම්භ වූ උපදෙස් ගබඩා කරගනී
DS, ES, FS, GS Data Segment
SS Stack Segment දැන් භාවිතා වන program එකේ Stack එක ගබඩා කරගන්න ස්ථානය
ඉහත කොටස් දෙකටම අයත් නැති ඒවා තමයි

Address(ලිපිනය) Name(සාමාන්‍ය නම) Description(විස්තරය)
EFLAGS Code Segment status, control, හා system flags ගබඩා කරගනී
EIP Instruction Pointer ඊළඟ විධානයට සරිලන offset එක ලබා දේ


CPU Registers ගැන වැඩි විස්තර කඩ්ඩෙන් ඕන්නම් මෙතෙනින් හා මෙතෙනින් ගන්න පුලුවන්


OFFSET ට එරෙහිව ADDR
මේ command  දෙකම එක වගේ නමුත් OFFSET යොදා ගන්නෙ  global variables වල memory address ගන්නයි නමුත් ADDR වලින් global variables හා local variables යන දෙකේම memory address ගන්න පුලුවන්
ඒ හින්දම OFFSET වල භාවිතය අඩුයි :)

1 comments:

Anonymous said...

add the references too.

Post a Comment