Size: a a a

Ассемблер

2021 August 17

ВВ

Вячеслав Васютин... in Ассемблер
Lea берет адресс из скобок? А что, если ей не в скобках передать? Что она поместит в реристр?
источник

E

Entusiast in Ассемблер
Ничего, такой инструкции не существует
источник

ВВ

Вячеслав Васютин... in Ассемблер
Ясненько
источник

ВВ

Вячеслав Васютин... in Ассемблер
Спасибки
источник

ВВ

Вячеслав Васютин... in Ассемблер
Кста, я правильно перевел?

; Translate to ASCII

mov rbx, [FirstResult]
add rbx, [SecondResult]
mov [RbxData], rbx
mov rbx, [Thirty]
sub [RbxData], rbx
....

FirstResult dq ?
SecondResult dq ?

RbxData dq ?
Thirty dq 30
источник

E

Entusiast in Ассемблер
mov rbx, [FirstResult]
add rbx, [SecondResult]
sub rbx, [Thirty]
источник

E

Entusiast in Ассемблер
И не Translate to ASCII
Тебе нужно сначала в decimal из ASCII перевести, сложить\вычесть (сделать нужные операции), потом перевести из decimal в ASCII, и вывести
источник

ВВ

Вячеслав Васютин... in Ассемблер
Ох.. Я, наверное, из ASCII into decimal перевел. Да?
источник

E

Entusiast in Ассемблер
Ты перевёл из ASCII в ASCII
После ввода они и так ASCII, чтобы сделать нужные тебе операции - они должны быть decimal
источник

ВВ

Вячеслав Васютин... in Ассемблер
?😱🤦‍♂
источник

E

Entusiast in Ассемблер
Нет, подожди, ты вообще пока что ничего никуда не переводил
источник

ВВ

Вячеслав Васютин... in Ассемблер
Вот весь код программы:
format ELF64 executable

segment readable executable

mov rax, sys_read
mov rdi, stdin
mov rsi, strbuf
mov rdx, strsize
mov [FirstOperand], rsi
syscall

mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdi, MsgSize
mov [raxdata], rax
syscall

mov rax, sys_read
mov rdi, stdin
mov rsi, StrBuffer
mov rdx, strsize
mov [SecondOperand], rsi
syscall

mov rax, [raxdata]
mov rdi, 1
mov rsi, Messange
mov rdx, MessangeSize
syscall

; Translate to SCII

mov rbx, [FirstResult]
add rbx, [SecondResult]
mov [RbxData], rbx
mov rbx, [Thirty]
sub [RbxData], rbx

mov rax, [raxdata]
mov rdi, 1
mov rsi, RbxData
mov rdx, strbuf
syscall





segment readable writeable

; System data

stdout dq 1
stdin dq 0
sys_write dq 1
sys_read dq 0


; Data
raxdata dq ?
strsize = 1024
strbuf rb strsize
StrBuffer rb strsize

msg db "Enter first number: ", 10, 0
Messange db "Enter second number: ", 10, 0
MessangeSize = $-Messange
MsgSize = $-msg

FirstResult dq ?
SecondResult dq ?

RbxData dq ?
Thirty dq 30
источник

E

Entusiast in Ассемблер
Да нафиг тебе этот raxdata, rbxdata?!
источник

E

Entusiast in Ассемблер
Вот смотри
источник

ВВ

Вячеслав Васютин... in Ассемблер
Дам.. Я еще забыл сделать завершение программы...
источник

ВВ

Вячеслав Васютин... in Ассемблер
exit нету
источник

ВВ

Вячеслав Васютин... in Ассемблер
Жду
источник

ВВ

Вячеслав Васютин... in Ассемблер
Вот так должно быть?

; Translate from ASCII

mov rbx, [FirstResult]
add rbx, [SecondResult]
mov rbx, [Thirty]
sub [RbxData], rbx
источник

ВВ

Вячеслав Васютин... in Ассемблер
А не...
источник

ВВ

Вячеслав Васютин... in Ассемблер
Не то.
источник