Ha assembly nyelven akarok programozni, akkor kell ismerjem a számítógép processzorában levő összes regisztert?
Csak azokat kell ismerni, amiket használni szeretnél a megvalósítás során.
Címzés alapján tudsz hozzáférni (írni, olvasni)
Hát röhejes, hogy egy regiszterrel meg lehet csinálni bármit :D
Ezt nem úgy kell elképzelni, hogy leülsz, és megtanulod... Kinyomtatod az utasítás készletet, és a regisztereket, meg információt gyűjtesz az oszcillátorról, watch dog timer-ről, portokról... attól függ mint programozol, bios felett, windows felett, pic-et...
Minden le van írva, hogy pl szorzásnál melyik regiszterbe kell rakni az operandusokat, és melyik regiszterben áll elő az eredmény, melyik utasítás melyik flag-et változtatja...
iostream, gratulálok :) tudod, a PC assembly nem RISC, úgyhogy ha csak pl az EAXot használod, akkor nem fogsz tudni osztani, meg pl memóriát címezni.
a kérdésre válaszolva: vegyél elő egy X86 assembly tutorialt, és először tanuld meg a 8086-ot. ott mindenhez hozzá fogsz tudni férni, főleg azért, mert egy virtuális gépen fog futni az egész program a windowsban. az igazi regisztereket védett módban meg by design nem fogod tudni elérni ha alkalmazást indítasz (ring 3), de a védett mód még elég messze van, ha most kezdesz programozni, és megkockáztatom, nem is fogsz saját bootloadert írni egyhamar :) debuggerekkel belenézhetsz azért pár regiszterbe, és át is írhatod őket - OllyDbg és SoftIce, win XP alatt.
>Ha assembly nyelven akarok programozni, akkor kell ismerjem a számítógép processzorában levő összes regisztert?
Persze, hogy illik. Na de, nincs azokból olyan sok. 4 ált célú (ax,bx,cx,dx), ugyanez 32 biten (eax,ebx,ecx,edx), IP (utasítás pointer), SP (stack pointer), AC (akku), PC (program counter), flagek, árnyékregiszterek, stb.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!