NKC Forum |
Autor | Thema: Kein JMP 'absolute short' auf NKC ? |
---|---|
smed Stammgast ID # 114 |
Erstellt am 21. Januar 2018 05:53 (#1)
Zitat
PN E-Mail
Hallo,
In meinem 68k Simulator wird ein JMP so assembliert: 0000A0000 org $a000 also mit Addressierungsart 'absolute short' (opcode: 4EF8 )Der NKC assembliert JMP mit Addressierungsart 'absolute long' (opcode: 4EF9 )00A000 org $a000 soweit so gut, beide Addressierungsarten sollten funktionieren. Der NKC (68008) verabeitet jedoch die kurze Addressierungsart anders als der Simulator: Im Simulator ist nach 4EF8 A000 der PC auf $0000A000 Im NKC wird mit dem selben Opcode $FFFFA000 in den PC geladen und es crashed.Warum? Gruss smed ----------------------- NKC'ler seit 1984 (Pause zw. 1988-2017) CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k. NKC - OpenSource since 1983 |
Beiträge: 198 | Mitglied seit: Januar 2011 | IP-Adresse: gespeichert | |
DerInder Fast schon Admin Seitenadmins ID # 2 |
Erstellt am 21. Januar 2018 14:17 (#2)
Zitat
PN E-Mail
Moin Moin,
es ist ganz einfach: Dein Simulator baut Mist Folgendes, der jmp Befehl braucht logischer Weise eine 32 Bit Adresse. Bei deinem Simulator wird aus $A000 $0000A000, das entspricht aber nicht dem was der 68000er macht. Der 68000er ergänzt die Adressen immer "sign extendet"!!! Daher wird aus $A000 $FFFFA000, denn $A000 ist ja ein negativer Wortwert. Wenn du dein Programm beim NKC auf z.B. Adresse $2000 übersetzt, klappt dein obiges Vorgehen. Ach ja, der Shortjump hat folgenden Syntax: jmp start.w ----------------------- Gruß -=jens=- |
Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert | |
smed Stammgast ID # 114 |
Erstellt am 21. Januar 2018 15:11 (#3)
Zitat
PN E-Mail
Hallo
Super! Danke! Gleich mal ausprobiert, und...stimmt! org $2000 Mann-o-mann... Gruss smed ----------------------- NKC'ler seit 1984 (Pause zw. 1988-2017) CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k. NKC - OpenSource since 1983 |
Beiträge: 198 | Mitglied seit: Januar 2011 | IP-Adresse: gespeichert | |
DerInder Fast schon Admin Seitenadmins ID # 2 |
Erstellt am 21. Januar 2018 15:22 (#4)
Zitat
PN E-Mail
Immer gerne
Allerdings zeigt dein Beispiel, das 68k Programme (und mit Sicherheit auch andere) nicht unbedingt korrekt auf nem Simulator laufen ----------------------- Gruß -=jens=- |
Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert | |
smed Stammgast ID # 114 |
Erstellt am 23. Januar 2018 06:57 (#5)
Zitat
PN E-Mail
Hallo,
das stimmt, am Ende hat die Hardware immer recht. Und hier der Link zum 68K Simulator: http://home.kpn.nl/pj.fondse/ide68k/ den gibts auch noch:http://www.easy68k.com/ Beide sind zum Lernen sehr gut geeignet. Und nachdem man damit ein bischen rumgespielt hat, kommt natürlich schnell der Wunsch auf die hex Files bequem zum NKC zu übertragen und dort laufen zu lassen, nachdem man im Simulator schon mal vorgetestet hat. Ich habe sowas halb am Laufen. Ich schreibe einen gesonderten Beitrag wenn es wirklich und ohne manuelle Schritte klappt. Für mich ist das eine kleine Revolution, bequem am PC für den NKC in Assembler zu programmieren, und das besondere Schmankerl: IDE68k (der erste Link) unterstützt auch C... Gruss smed ----------------------- NKC'ler seit 1984 (Pause zw. 1988-2017) CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k. NKC - OpenSource since 1983 |
Beiträge: 198 | Mitglied seit: Januar 2011 | IP-Adresse: gespeichert |
| https://hschuetz.selfhost.eu | Boardregeln | Datenschutzerklärung
Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts
Seite in 0,033157 Sekunden erstellt
17 Dateien verarbeitet
gzip Komprimierung eingeschaltet
2624,87 KiB Speichernutzung