08. september 2003 - 17:08Der er
7 kommentarer og 2 løsninger
Assembler. I8086 Registre?
Hej Er her nogen som kan forklare mig lidt om de registre som man bruger i assembler? EAX, AX, BX etc. Er de bare midlertidige lagre, som kan bruges som variabler, og hvilke af dem har specielle funktioner etc... nogle af dem kan man vist ligge en værdi i, og så gemme den i ram... hvilken og hvordan?
Oprindeligt var de forskellige registre bestemt til nogle bestemte opgaver, men i nyere protected mode programmer, er det mere løst defineret. Men nogle instruktioner benytter værdier eller returnerer værdier i bestemte registre, og det kan man ikke lave om på.
Der er 4 general purpose registre: EAX / AX / Accumulator EBX / BX / Base ECX / CX / Count EDX / DX / Data
Navnene siger noget om hvad de oprindeligt er tænkt til. F.eks. ser instruktionen LOOP på indholdet af CX. Hvis indholdet er 0, fortsættes eksekvering, og hvis indholdet ikke er 0, trækkes en fra, og der hoppes til en angiven position i et program.
Desuden er der flg. pointer eller index registre: ESP, EBP, ESI, EDI I protected mode er det tilladt at bruge alle registre som pointere.
Desuden findes et flag - register.
Jeg har glemt og udeladt en masse, da det du spørger om er et kapitel for sig selv.
Nice! hvis i har flere links, er jeg meget interesseret... også om hvordan man styrer "kommunikationen" mellem RAM, Registre og Interrupts... Post dem lige som svar, så uddeler jeg nogle points ;)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.