wok annotate linld/stuff/jump.u @ rev 19203
linld/tobzimage: add realmode_switch support
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat Jun 11 15:57:21 2016 +0200 (2016-06-11) |
parents | |
children | df186455938f |
rev | line source |
---|---|
pascal@19203 | 1 --- LINLD097/JUMP.ASM |
pascal@19203 | 2 +++ LINLD097/JUMP.ASM |
pascal@19203 | 3 @@ -24,33 +24,22 @@ |
pascal@19203 | 4 jmpseg :word, \ |
pascal@19203 | 5 jmpofs :word = PARAM_SIZE |
pascal@19203 | 6 |
pascal@19203 | 7 - push bp ;TODO: kinda useless, isn't it? |
pascal@19203 | 8 - mov bp,sp |
pascal@19203 | 9 - |
pascal@19203 | 10 - ;;mov ax,[jmpseg] ;Move data to CS segment var |
pascal@19203 | 11 - ;;mov [seg2],ax ; we cannot use any other seg! |
pascal@19203 | 12 - ;;mov ax,[jmpofs] ; |
pascal@19203 | 13 - ;;mov [ofs2],ax ; |
pascal@19203 | 14 - mov cx,[jmpofs] ;Do NOT load in r32: |
pascal@19203 | 15 - mov dx,[jmpseg] ; wrong order! |
pascal@19203 | 16 - |
pascal@19203 | 17 - mov ax,[sreg] |
pascal@19203 | 18 - mov sp,[stk] ;Do not use [bp+n] after this... |
pascal@19203 | 19 - mov ds,ax |
pascal@19203 | 20 - mov es,ax |
pascal@19203 | 21 - mov ss,ax |
pascal@19203 | 22 - mov fs,ax |
pascal@19203 | 23 - mov gs,ax |
pascal@19203 | 24 + pop bx ;caller return address |
pascal@19203 | 25 + pop bx ; sreg |
pascal@19203 | 26 + pop ax ; stk |
pascal@19203 | 27 + pop dx ; jmpseg |
pascal@19203 | 28 + pop cx ; jmpofs |
pascal@19203 | 29 + mov ds,bx |
pascal@19203 | 30 + mov es,bx |
pascal@19203 | 31 + mov fs,bx |
pascal@19203 | 32 + mov gs,bx |
pascal@19203 | 33 + mov ss,bx |
pascal@19203 | 34 + xchg sp,ax |
pascal@19203 | 35 assume nothing |
pascal@19203 | 36 assume cs:DGROUP |
pascal@19203 | 37 |
pascal@19203 | 38 - ;;jmp [dword ofs2] |
pascal@19203 | 39 - |
pascal@19203 | 40 push dx cx |
pascal@19203 | 41 retf |
pascal@19203 | 42 -; Data |
pascal@19203 | 43 -;;ofs2 dw ? |
pascal@19203 | 44 -;;seg2 dw ? |
pascal@19203 | 45 endp _set_sregs_jump_seg_ofs |
pascal@19203 | 46 |
pascal@19203 | 47 ends _TEXT |