Size: a a a

Ассемблер

2021 June 26

DB

Dima Bat in Ассемблер
Не. Сначала адрес в регистровую пару
источник

DB

Dima Bat in Ассемблер
А потом с адреса на который указывает команда специальная🤣
источник

P

ProMiNick in Ассемблер
ну если регистров аж 32 штуки - хватит и с костылянием по регистровым парам.
источник

АШ

Алексей Шведов... in Ассемблер
Так и думал, что там LARGE_INTEGER будет
источник

DB

Dima Bat in Ассемблер
В пункте 2 сдвинуть первый а во втором убрать ту единицу?
источник

В

Вольнодумец... in Ассемблер
Нужно распечатать содержимое переменной, нo распечатывается только MsgScaption. В чем тут ошибка может быть?                                                                                                                                                      a db 2d
b db 2d
c db 2d
y db 0d
MsgCaption db "Result MUL",0
sfc db "%.c",0

.code

start:
    xor eax,eax
    xor ebx,ebx
    xor edx,edx
    xor ecx,ecx

    mov AL,[a]
    mov BL,[b]
    mul BL
    mov BL,[c]
    mul BL
    mov [y],AL

    invoke wsprintf, y, sfc, EAX
    invoke MessageBox, 0, addr y, addr MsgCaption, 0

    push 0
    call ExitProcess





.end start
источник

В

Вольнодумец... in Ассемблер
источник

АШ

Алексей Шведов... in Ассемблер
Потому что нужно переводить в ASCII
источник

В

Вольнодумец... in Ассемблер
Получается я просто в десятичных не смогу вывести, нужно BCD число делать, типо?)
источник

АШ

Алексей Шведов... in Ассемблер
Нужно переводить число в ASCII, а ещё почитать MSDN
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
ты точно правильно используешь  wsprintf?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
и addr в данном случае не обязателен
источник

В

Вольнодумец... in Ассемблер
Не правильно)
источник

В

Вольнодумец... in Ассемблер
Уже разобрался
источник

В

Вольнодумец... in Ассемблер
Спасибо всем
источник

II

Ira Irina in Ассемблер
Надо смотреть в исходниках криптографических программ, там число атомов во вселенной возводят в такую же степень, хоть и по модулю, но все равно невообразимые числа получаются.
источник

DC

Dmitry Croft in Ассемблер
Чуваки

У меня вопрос по работе процессора(x64) с памятью

Моя теория:
Адрес памяти это всегда указатель на один байт. Но поскольку у нас 64 битная шина, то процессор будет всегда выгружать 64 бита и вытянет из этих 64 битов нужный байт и положит его в нужный регистр

А как тогда процессор понимает, что нам нужно за раз положить два байта в регистр если мы можем адресовать только один байт? Может кто-то объяснить этот workflow при загрузке 1 байта и, допустим, двух байт?
источник

II

Ira Irina in Ассемблер
А по адресу этого одного байта, процу разве трудно догадаться где следующий лежит?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
я тебе уже объяснял. адрес это адрес. ты адресуешь начало блока памяти, а не его конкретную ячейку.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
и берешь по этому адресу столько сколько тебе надо (в рамках правил)
источник