Язык ассемблера довольно прост, но я не совсем понимаю, как использовать регистры, например:
section .data
msg db "Hello, world!",0xa
len equ $ - msg
section .text
global _start
_start:
;write our string to stdout
mov edx,len
mov ecx,msg
mov eax,4
int 0x80
;and exit
mov ebx,0
mov eax,1
int 0x80
Работает нормально, но когда я меняю код на:
section .data
msg db "Hello, world!",0xa
len equ $ - msg
section .text
global _start
_start:
;write our string to stdout
mov ebx,len
mov edx,msg
mov eax,4
int 0x80
;and exit
mov ebx,0
mov eax,1
int 0x80
Он скомпилируется, но не будет отображать 'Hello, World'
.Все, что я сделал, это изменил регистр на len
и msg
.Существует ли соглашение о том, какой регистр должен содержать?