[ASM] hoe segment van code instellen?

Pagina: 1
Acties:

  • hneel
  • Registratie: Maart 2001
  • Nu online

hneel

denkt er het zijne van

Topicstarter
Ik heb hier een apparaat met een 80186 processor waar ik een stukje software voor moet schrijven. Deze software komt op een memorycard, maar denk voor het gemak even alsof het op een eprom gaat.

Nu is het zo dat die normaliter opstart via een opstartvector op 0xFFFF0, maar deze wordt door een FPGA omgebogen naar 0x20000.

Hoe krijg ik het voor elkaar om in assembler het code segment op 2000 te laten starten? Via een org gaat dat niet want dat geeft de offset binnen een segment aan, toch?

Voorheen hadden we een soortgelijk apparaat waar het start adres op 0x00400 lag. Toen konden we gewoon een org 0400h doen en vandaar een far jump. Maar nu lukt dat niet meer want 0x20000 ligt buiten het segment bereik.

Verwijderd

Probeer eens iets in de (MASM) geest van:

GAS:
1
2
3
4
5
6
7
8
9
10
; segment starts at 0x20000
_TEXT SEGMENT ... bla ...  AT 2000h"

; setup initial value of cs
ASSUME cs:_TEXT

; start at cs:0000
ORG 0

; should start now at 0x20000  =  2000:0000

  • hneel
  • Registratie: Maart 2001
  • Nu online

hneel

denkt er het zijne van

Topicstarter
Ik zal het binnenkort eens proberen. Bedankt.