num db '0'
numm db '3'
section .text
global _start
_start:
mov eax, '5'
mov [num], eax
mov eax, 4
mov ebx, 1
mov ecx, num
mov edx, 1
int 0x80
mov eax, 4
mov ebx, 1
mov ecx, numm
mov edx, 1
int 0x80
mov eax, 1
int 0x80
не выводит числа 53 а просто 5
ну вот это потому что в ascii код 53 это 5 наверное надо глянуть в таблицу
та не. тут же я вывожу 2 раза разные переменные. но выводится только одна. выяснил что если уберу строки mov eax, '5' mov [num], eax тогда всё починится но не понял почему
Ты тройку свою перезаписал, ты ж пишешь eax в 1 байт
так там 2 переменных. вторую не трогаю вроде
Ну они последовательно лежат, eax - 4 байта, первая переменная байт, соответственно последующие 3 байта также затираются
ааааааооооааа. а как исправить?
al писать и явно указывать BYTE
да я те грю 53 это код 5ки я в таблице посмотрел
а потому что када ты в кавычках пятерку пишешь в регистр она как строка пишется и fasm ее автоматом в ascii кодирует
Обсуждают сегодня