.model tiny
.stack
.data
a_var db '123'
b_var db '456'
c_var db 6 dup(?) ;6 dup(?) betyder 6st ? (dup = duplicate)
.code
main proc
mov ax,@data ;ladda data segment till ax
mov es,ax ;och sen till es
mov ds,ax ;och till ds
lea di,c_var ;ladda c_var's offset till di, kan skrivas mov di,offset c_var
lea si,a_var
cld ;sätter direction flag till 0, får loopen att räkna ner!
mov cx,6 ;sex tecken!
add_vars:
lodsb ;ladda ds:si till al och öka si med 1
stosb ;spara al i es:di
loop add_vars ;om cx>0 hoppa till add_a_var
mov ax,4c00h
int 21h ;ger tebax kontrollen till DOS
main endp
end main
-----------------
KOD SLUTAR HÄR!!!!
det borde hjälpa dig. kom ihåg att a_var och b_var måste ligga eftervarandra desutom får a_var inte ligga sist (finns risk för att programmet krashar annars hehe).
om det var nått du inte förstod så messa tebax så ska jag försöka förklara bättre...
Tack för din hjälp :!: Jag antar att det ser ungefär lika ut i 32 bitars förutom att man kan använda 32 bitars register och istället för 'int 24h' call'a ExitProcess()
Det är ju snyggare (och enklare) att köra med nullterminerade strängar. Då kan man dessutom köra med repnz, och slipper därmed veta hur långa strängarna är.
Det är ju snyggare (och enklare) att köra med nullterminerade strängar. Då kan man dessutom köra med repnz, och slipper därmed veta hur långa strängarna är.
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!