Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .global Decode
- .global EmuPush
- .global EmuWrite
- .global EmuPop
- .global EmuRead
- .global EmuAdd
- .global EmuSub
- .global EmuMul
- .global EmuDiv
- .global EmuBz
- .global EmuBn
- .global EmuJmp
- .section ".text"
- !i0 est l instruction
- !i1 la machine
- Decode:
- save %sp,-208,%sp
- lduw [%i1],%l1 !Obtention du compteur ordinal
- ldx [%i1+16],%l0 !Obtention du pointeur sur la memoire de la machine virtuelle
- ldub [%l0+%l1],%l0 !Lecture du premier octet de l'instruction courante
- cmp %l0,0x40 !Est-ce l'instruction PUSH? (0x00)
- be decode10 !Decode un PUSH
- nop
- cmp %l0,0 !Est-ce l'instruction HALT? (0x00)
- bnz decodeError !sinon, le reste n'est pas encore supporte: Erreur.
- nop !...
- stw %g0,[%i0] !type d'instruction: systeme (0)
- stw %g0,[%i0+4] !numero d'operation: 0 (HALT)
- ba decodeEnd
- nop
- decode10: !PUSH
- mov 1,%l2
- stw %l2,[%i0] !mode 01
- mov 0,%l2
- stw %l2,[%i0+4] !operation: 0 (PUSH)
- !CC est toujours 0
- !fl est a 0 aussi
- mov 3,%l2
- stw %l2,[%i0+20] !Size: 3
- decodeEnd:
- mov 0,%i0 !code d'erreur 0: decodage reussi
- ret
- restore
- decodeError:
- mov 1,%i0 !code d'erreur 1: instruction illegale.
- ret
- restore
- EmuPush:
- save %sp,-208,%sp
- mov 1,%i0
- ret
- restore
- EmuWrite:
- save %sp,-208,%sp
- mov 1,%i0
- ret
- restore
- EmuPop:
- save %sp,-208,%sp
- mov 1,%i0
- ret
- restore
- EmuRead:
- save %sp,-208,%sp
- mov 1,%i0
- ret
- restore
- EmuAdd:
- save %sp,-208,%sp
- mov 1,%i0
- ret
- restore
- EmuSub:
- save %sp,-208,%sp
- mov 1,%i0
- ret
- restore
- EmuMul:
- save %sp,-208,%sp
- mov 1,%i0
- ret
- restore
- EmuDiv:
- save %sp,-208,%sp
- mov 1,%i0
- ret
- restore
- EmuBz:
- save %sp,-208,%sp
- mov 1,%i0
- ret
- restore
- EmuBn:
- save %sp,-208,%sp
- mov 1,%i0
- ret
- restore
- EmuJmp:
- save %sp,-208,%sp
- mov 1,%i0
- ret
- restore
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement