Witam.
Ostatnio chciałem się pobawić dynamiczną alokacją pamięci w assemblerze i mam pewien problem któreg nie mogę rozwiązać i zbytnio zrozumieć. Wymyśliłem że pobawię się cpuidem w asm + dynamiczna alokacja pamięci w asm. I problem taki jak w temacie posta.
Oto kod:
.model small
.586
.data
napis db "Dynamiczna alokacja pamieci: ",0ah,0dh,"$"
.stack 100h
.code
.startup
mov dx,offset napis
mov ah,09h
int 21h
xor eax,eax
cpuid
mov ah,48h ;Przerwanie Ms-Dos int 21h , ah=48h czyli dynamiczna alokacja pamięci
mov bx,50
int 21h
mov es,ax ;Gdzieś znalałem to w internecie żeby przypisać adres segmentu dynamicznie zdefiniowanej pamięci do es
push ds
pop es
lea di,es ;Tu wywala błąd w trakcie asemblacji "
lea si,ebx ; Tu zapewne również wyrzuci błąd w trakcie assemblacji.
cld
rep movsb
.exit
end
Jestem początkującym w assemblerze i męczę się z tym już parę tygodni i już mi ręcę opadają ale się nie poddaje i dlatego liczę na pomoc ludzi mających wiedzę w tym języku.
Jest to składnia Masma jak coś.
Jeśli to komuś się przyda post jest sposobem szukania rozwiązania tego problemu: Złączanie dwóch stringów w jeden w Assemblerze
Życzę miłego dnia i bardzo dziękuję za pomoc każdej osobie. Jeśli będzie czegoś brakować itp to proszę pisać.