MIPS 200 asembler pomóż

D

Deathlich

Guest
Hello everyone, mam projekt do C / C , jak działa program asemblera MIPS, innymi słowy mam wdrożyć ISA za pomocą oprogramowania.

Żeby było jasne, użytkownik napisać. Txt, w tym kilka instrukcji MIPS (np. "Dodaj $ t9, $ a0, $ T5"), i należy przeczytać instrukcje i wykonuje go wykonać w sprawie rejestrów (zmienne w moim programie), My Głównym problemem w branży i instrukcji skoku.Również ja skaner, gdzie umieścić wszystkich plików użytkownika na tablicy, ale myślę, aby to zmienić, aby w jednej instrukcji w czasie (jedna linia).

Ostatnią rzeczą, instrukcje pamięci.Jak wdrożyć pamięci?przy tablicy structs?

jakiś pomysł, pomaga, linki, aby to jasne.
thanx in advance

 
Deathlich,

I'm doing somethile podobny do tego w momencie, jestem rozwijających się części do C Builder, które mogą Execut skrypt (program), to ściśle jest generowany program anoder formularz ....

Wolę używać spript w formacie szesnastkowym, a nie ASCII.Z Hex mogę oświadczyć mojej pamięci, na przykład:

unsigned __int16 MemoryMap [64 * 1024] / / W 64K pamięci ...

Nie mogę zdefiniować adres (indeksy tablicy) od 0x0000 do 0x0FFF do pamięci danych i inne (0x1000 do 0xFFFF) do pamięci programu.

Rejestry został ogłoszony w taki sposób:
typedef Regs Unii
(
__int16 b16;
__int8 B8 [2];
) Tregs;

typedef struct Rejestry
(
Tregs PC;
Tregs SP;
Tregs R2;
Tregs R3;
Tregs R4;
Tregs R5;
Tregs R6;
Tregs R7;
Tregs R8;
Tregs R9;
Tregs R10;
Tregs R11;
Tregs R12;
Tregs R13;
R14 Tregs;
Tregs R15;
) TCPURegs;

TCPURegs rejestrach;

Z tego można ANALIZE z przełącznika wartość MemoryMap [Registers.PC], a sko wat zrobić, przenieść coś do rejestru, somthin przenieść się do przyrostu miejsce pamięci, ubytek lub zarejestruj test / miejsce pamięci.

Dla mnie to działa, ale program nie jest napisane uning edytor tekstu, musisz się kompilatora (piszesz assemblera i kompilatora tho przekształcić go hex wartości, takie jak Borland TASM zrobić z asemblera dla 8088).

Czy to, chciałbym ci pomogła ....

Deathlich napisał:

Hello everyone, mam projekt do C / C , jak działa program asemblera MIPS, innymi słowy mam wdrożyć ISA za pomocą oprogramowania.Żeby było jasne, użytkownik napisać. Txt, w tym kilka instrukcji MIPS (np. "Dodaj $ t9, $ a0, $ T5"), i należy przeczytać instrukcje i wykonuje go wykonać w sprawie rejestrów (zmienne w moim programie), My Głównym problemem w branży i instrukcji skoku.
Również ja skaner, gdzie umieścić wszystkich plików użytkownika na tablicy, ale myślę, aby to zmienić, aby w jednej instrukcji w czasie (jedna linia).Ostatnią rzeczą, instrukcje pamięci.
Jak wdrożyć pamięci?
przy tablicy structs?jakiś pomysł, pomaga, linki, aby to jasne.

thanx in advance
 
thnx dużo, było to bardzo przydatne dla mnie, ale mimo wykonania JMP i instrukcje oddziału są mylące lub jego ogromną ilość instrukcji myli mnie

<img src="http://www.edaboard.com/images/smiles/icon_razz.gif" alt="Razz" border="0" />
 
Well ..Instrukcji skoku jest bardzo prosta, podobnie jak inni ...

Kod:# define ODDZIAŁ 0x0003

# define JUMP 0x0004

# define OTHER_INSTRUCION 0x0005/ / Put this Conde wewnątrz Thread

while (1)

(

switch (MemoryMap [Registers.PC.b16])

(

ODDZIAŁ W przypadku:

Registers.PC.b16 = MemoryMap [Registers.PC.b16 1]; / / Do instrukcji Oddział

break;JUMP przypadku:

Registers.PC.b16 = (int) MemoryMap [Registers.PC.b16 1]; / / Czy w stosunku instrukcji skoku

break;OTHER_INSTRUCION przypadku:

/ / Umieszczenie kodu innego nauczania tutaj (jak MOVE, BITCLEAR bitset ...)Registers.PC.b16 = 3; / / Przyrost liczby słów tej instrukcji (Conde (jednym słowem) Argument (0 lub 1, 2 lub ... lub n Words)

break;

)

)

 

Welcome to EDABoard.com

Sponsor

Back
Top