Size: a a a

Ассемблер

2021 September 25

E

Entusiast in Ассемблер
И что ты на нём делаешь?
источник

P

Pavel in Ассемблер
Ты админ чата или просто участник?
источник

E

Entusiast in Ассемблер
А какая разница?
источник

P

Pavel in Ассемблер
Много вопросов задаешь мне
источник

E

Entusiast in Ассемблер
Ну админы разрешают, это даже помогает им их работу выполнять. Человек зашёл - нужно индивидуальный вопрос задать, а если кто-то другой вопрос задал, или поспрашивал, админ прочитал - всё понял, и спокоен
источник

P

Pavel in Ассемблер
Ну если разрешают, то ок)))
источник

P

Pavel in Ассемблер
Я писал что только хочу попробовать на нем писать, в общем я на начале пути изучения его, поэтому и зашёл в чат, возможно здесь можно найти для себя полезную инфу. Делиться знаниями я пока не могу
источник

C

Cofeefee in Ассемблер
У каждого вендора материнки собственные post-коды, на 286, 386,486 они не были стандартизированы
источник

AT

Andrew Torgashev in Ассемблер
Вот в этом то и вся заковырка, хочется понять как правильно прочитать деассемблированный код BIOS, что бы понять за что именно отвечает тот или иной post код. Потихоньку собираю инфу, но как-то просветление не приходит :-(
источник

RB

Rustem B. in Ассемблер
как в NASM передать в макрос строку напрямую, чтобы напечатать ее, а не передавать адрес изначально заведенного в data?
источник

E

Entusiast in Ассемблер
Покажи версию, где передаёшь адрес на переменную

Код отправлять кодом лучше
источник

RB

Rustem B. in Ассемблер
то есть, у меня сейчас так
%1 это адрес памяти
а я хотел бы писать prints 'Hello$' так как у меня строки, которые не требуют повторной печати
источник

RB

Rustem B. in Ассемблер
        %macro prints 1                ; print string
       push dx
       push ax
       mov dx, %1
       mov ah, 9
       int 21h
       pop ax
       pop dx
       %endmacro
источник

RB

Rustem B. in Ассемблер
я так понял, у препроцессора должна быть какая-то возможность записывать в сегмент какой-то кусок кода
источник

E

Entusiast in Ассемблер
Можно сделать что-то наподобие такого:
%macro prints 1 2                                    
jmp @f                                    
db %1                                    
@@:                                    
push dx                                    
push ax                                    
mov dx, (@b-%2)                                    
mov ah, %2                                    
int 21h                                    
pop ax                                    
pop dx                                    
%endmacro
Где 2 - размер строки:
prints ("Hello, world", 0), 13
источник

RB

Rustem B. in Ассемблер
хм, спасибо
источник

A

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

RB

Rustem B. in Ассемблер
это я понял
источник

A

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

RB

Rustem B. in Ассемблер
но это уже как минимум 1+(N*2)+2 инструкции
источник