- potrzebuje znac dlugosci segmentow
czy to bedzie takie cos :
dane segment
; jakies inne zmienne i stale
dane$ equ $ - dane
dane ends
czy to ozancza obliczanie adresow miedzy aktualna pozycja "$" a poczaatkeim segmentu
- podobne jak podac pozycje zmiennej
mam takie cos
des_null db 00h, 00h, 00h, 00h, 00h, 00000000b, 00000000b, 00h ; 0h
des_kod32 db 0ffh,0ffh, 00h, 00h, 00h, 10011010b, 01000000b, 00h ; 8h
jak wyliczyc ze des_null jest na 0h a des_kod32 na 8h
czy teraz w des_kod32_idx bedzie 8h?
des_null_idx equ des_null
des_kod32_idx equ des_kod32
- dlugosc napisu
czy to bedzie tak :
Napis db 'W6i6t6a6j6 6w6 6t6r6y6b6i6e6 6c6h6r6o6n6i6o6n6y6m6.'
Napis$ equ $ - Napis
- i na koncu chyba najtrudniejsze... bo tu nie wim jak zrobic:-/
po wyjsciu z trybu chronionego zasiesza sie (wiem wiem... to moze byc wszystko) wiec zamieszczam kawalki kodu
w segmencie danych16 jest
des_kod16 db 0ffh,0ffh, 00h, 00h, 00h, 10011010b, 00000000b, 00h; 28h
a po skoku do segmentu kod16 mam
db 0eah
dw offset ustawCS ;ustawienia cs i usniecie zadan z listy procesora
dw kod16 ;czyli skok do kod16:ustawCS
ustawCS:
assume cs:kod16, ds:dane16, ss:stos16
mov ax, seg dane16 ;ustaw reszte rejestrow
mov ds, ax
mov es, ax
z góry dzieki za pomoc jak co to umieszcze tu caly program.
GG: 6882778