mam problem gdy używam model
huge lub large
wyskakuje mi komunikat
Fatal: 16 bit segment not supported in module asm.asm
co muszę dodać w segmentach aby były uważane jako 32 bitowe?
mam problem gdy używam model
huge lub large
wyskakuje mi komunikat
Fatal: 16 bit segment not supported in module asm.asm
co muszę dodać w segmentach aby były uważane jako 32 bitowe?
i jeszcze coś takiego:
gdy użyje przerwania int 21h to windows wywala blad wiecie ten co jest przycisk debuguj i wyślij informacje o błędzie
Jak piszesz coś pod Windows to używaj modelu pamięci flat.
A żeby używać rejestrów 32-bitowych zdefiniuj typ procesora
np.
.686
niestety to nie to :(
zawsze używam modelu procesora ;)
kod wygląda tak
;Aplikacja korzystajaca z otwartego okna konsoli
.686
.MODEL flat, STDCALL
assume cs:_TEXT,ds:_DATA
includelib ..\lib\user32.lib
includelib ..\lib\kernel32.lib
;-------------
_DATA SEGMENT
tablica dd 100000 dup(0)
_DATA ENDS
;------------
_TEXT SEGMENT
start:
mov ah,07h
int 21h
_TEXT ENDS
END start
a to plik wykonywalny
http://odsiebie.com/pokaz/847188---e1d9.html
Po co w ogóle używasz dyrektywy asseume ?
Skoro używasz płaskiego modelu pamięci to segmentów jako takich nie ma.
Po prostu piszesz .code , .data itd...
Po drugie deklarujesz za dużą tablicę.