Avatar billede walker Nybegynder
08. september 2003 - 17:08 Der 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?

Mvh
Walker
Avatar billede driis Nybegynder
08. september 2003 - 17:17 #1
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.
Avatar billede driis Nybegynder
08. september 2003 - 17:19 #2
EAX er 32 bit wide, AX er de nederste 16 bit af EAX (det er altså samme register), mens AX er delt op i 2 bytes AH og AL.
Avatar billede driis Nybegynder
08. september 2003 - 17:21 #3
... og nu nævner du selv EAX, så jeg går ud fra du mener i80x86. I den oprindelige 8086 processor findes ikke 32 bit registre.
Avatar billede walker Nybegynder
08. september 2003 - 19:35 #4
Ja, det er sfl. i80x86...
Okay! Takker mange gange. Har du evt. et link til en mere total beskrivelse af registrene?
mvh
Walker
Avatar billede arne_v Ekspert
08. september 2003 - 19:40 #5
Avatar billede walker Nybegynder
08. september 2003 - 19:54 #6
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 ;)
Avatar billede arne_v Ekspert
08. september 2003 - 20:17 #7
Den her må vel nærmest være autoritativ:
  http://www.intel.com/design/intarch/techinfo/pentium/execenv.htm
Avatar billede arne_v Ekspert
08. september 2003 - 20:18 #8
Iøvrigt er der sikkert en del ag de andre link på
http://www.intel.com/design/intarch/techinfo/pentium/ under
"Programming" der må være interesant.
Avatar billede arne_v Ekspert
08. september 2003 - 20:18 #9
og et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging