Eugene
Игорь — бот, с такой авой ботов много. Димон с цветочком на аве... ну хз.
Eugene
Да у них у всех, кроме первого, странные юзернеймы.
електр🟢нік ✙🟠рчбеч ඞ
Anonymous
Мікаель
Есть ли возможность в ассемблере gnu as как-то переименовать регистр? Конструкции вида
. equ Counter, r4
add Counter,1
не компилируются.
Artem
Мікаель
Не, ARM (Cortex M3).
Artem
попробуй вместо r4 просто 4
Мікаель
Будет просто алиас Counter=4
Artem
ты уверен? я точно помню, что с avr-as это работало только так
Artem
насколько это читаемо и как ассемблер отличает номер регистра от мгновенного значения это другой вопрос
Мікаель
Вполне читаемо. Отличает просто: r0 r1 .. r15 у ассемлера всегда обозначают имена регистров, это зарезервированные слова.
Artem
я не про rN, а про N в качестве имени регистра
Artem
ну делай как знаешь, но я думаю что в gas к регистру надо обращаться просто числом без r
Мікаель
add 1,1 такого gnu as не переваривает ))
Мікаель
add r1,1
add r4,r1,1
Вот так правильно.
Мікаель
Я просто хочу локально переименовать регистры для удобства восприятия. Например делаешь цикл, и в нём юзаешь несколько регистров в ролях r0—результат r1—параметр r4—счетчикцикла и так далее
Мікаель
Или вот глобально использую регистры r11=1 r10=0:
str r11,[r7] — записать 1 по адресу памяти который лежит в регистре r7
Мікаель
А хотелось бы
str One,[MyAddress]
Eugene
Гуглится быстро же
https://stackoverflow.com/questions/41916844/equ-directive-in-gas-assembly
Eugene
#define, короче
Anonymous
кто порекомендует книгу по nasm
dukeBarman
Гугль? :) P.S. А так была, даже на русском от Столярова, правда актуальность под вопросом
Aiwan \ (•◡•) / _bot
електр🟢нік ✙🟠рчбеч ඞ
Да откуда вы лезите?
електр🟢нік ✙🟠рчбеч ඞ
почему автомут не работает
redcat
test
redcat
Не работает. Разве что разрешает отправлять сообщения не чаще чем раз в 10 секунд
Чирик, чирик.
Капибара выручай. спам... .. это не первый инцидент встречаю) @hitmaker
Dan
👌
@AlexFails не помнишь, где была ссылка на гитхаб гроуп баттлера? Наверное, стоит его уже на своём хосте запустить, а то этот заколебал падать уже...
И надо нам решить вопрос по поводу группы...
Eugene
@AlexFails, загляни в личку заодно, плиз. Уже больше месяца висят сообщения от меня.
Anton
как помнять где смотреть cl в дампе в турбодебагере7
Anton
т.е. какой у него адрес
Leon
Cl это самый низ ax/eax/rax
Valeriy
А правда что на асемблере кодят либо полные психи либо боги?
Sevapp
Eugene
Anton
А где посмотреть ответ
Anton
Я сохраняю вывод в cl
Anton
Как мне в turbodebuger в лампе увидеть ответ
Aiwan \ (•◡•) / _bot
Как мне в turbodebuger в лампе увидеть ответ
смотри значение регистра сх, младшая часть ответа и есть регистр cl, старшая - ch. скинь скрин отладчика после того как ответ поместил в cl, посмотрим вместе
Eugene
CX = 1234
CH = 12, CL = 34
(hex)
Eugene
ECX = ABCD1234, CX = 1234...
Anton
електр🟢нік ✙🟠рчбеч ඞ
ну вон А2
Anton
Где а2?
електр🟢нік ✙🟠рчбеч ඞ
Anton
Anton
Мне надо посчитать сколько символов f стоит перед -
КТо нибудь может сказать в чем ошибка?
masm
model small
.data
mes db 'String ff-or search.',0ah,0dh,'$'
nom db ? ;количество повторений символа 'f'
.stack
db 256 dup(0)
.code
assume ds:@data,es:@data
main proc near
mov ax,@data
mov ds,ax
mov es,ax ;настройка es на ds
lea si, mes
mov al, '-' ; символ для поиска
mov cx, 20
@L:
repne scasb
jz @done ; проверить на 0 ; вроде флаг должен устанвливаться при cx = 0
cmp si, 'f'
jne @next
inc cl ;увеличим число вхождений
@next:
jmp @L ; продолжать цикл пока не конец строки
@done:
mov ax,4c00h ;завершение программы
int 21h
main endp
end main
електр🟢нік ✙🟠рчбеч ඞ
Aiwan \ (•◡•) / _bot
Мне надо посчитать сколько символов f стоит перед -
КТо нибудь может сказать в чем ошибка?
masm
model small
.data
mes db 'String ff-or search.',0ah,0dh,'$'
nom db ? ;количество повторений символа 'f'
.stack
db 256 dup(0)
.code
assume ds:@data,es:@data
main proc near
mov ax,@data
mov ds,ax
mov es,ax ;настройка es на ds
lea si, mes
mov al, '-' ; символ для поиска
mov cx, 20
@L:
repne scasb
jz @done ; проверить на 0 ; вроде флаг должен устанвливаться при cx = 0
cmp si, 'f'
jne @next
inc cl ;увеличим число вхождений
@next:
jmp @L ; продолжать цикл пока не конец строки
@done:
mov ax,4c00h ;завершение программы
int 21h
main endp
end main
вечерком мож алгоритм нарисую, что то в нем не так
Aiwan \ (•◡•) / _bot
Мне надо посчитать сколько символов f стоит перед -
КТо нибудь может сказать в чем ошибка?
masm
model small
.data
mes db 'String ff-or search.',0ah,0dh,'$'
nom db ? ;количество повторений символа 'f'
.stack
db 256 dup(0)
.code
assume ds:@data,es:@data
main proc near
mov ax,@data
mov ds,ax
mov es,ax ;настройка es на ds
lea si, mes
mov al, '-' ; символ для поиска
mov cx, 20
@L:
repne scasb
jz @done ; проверить на 0 ; вроде флаг должен устанвливаться при cx = 0
cmp si, 'f'
jne @next
inc cl ;увеличим число вхождений
@next:
jmp @L ; продолжать цикл пока не конец строки
@done:
mov ax,4c00h ;завершение программы
int 21h
main endp
end main
у тя вроде бесконечный цикл
Aiwan \ (•◡•) / _bot
доведи ip до конца программы (mov ax, 4C00h) и скрин дай без окна dump, чтоб все регистры было видно
Aiwan \ (•◡•) / _bot
Мне надо посчитать сколько символов f стоит перед -
КТо нибудь может сказать в чем ошибка?
masm
model small
.data
mes db 'String ff-or search.',0ah,0dh,'$'
nom db ? ;количество повторений символа 'f'
.stack
db 256 dup(0)
.code
assume ds:@data,es:@data
main proc near
mov ax,@data
mov ds,ax
mov es,ax ;настройка es на ds
lea si, mes
mov al, '-' ; символ для поиска
mov cx, 20
@L:
repne scasb
jz @done ; проверить на 0 ; вроде флаг должен устанвливаться при cx = 0
cmp si, 'f'
jne @next
inc cl ;увеличим число вхождений
@next:
jmp @L ; продолжать цикл пока не конец строки
@done:
mov ax,4c00h ;завершение программы
int 21h
main endp
end main
scas работает с di
Aiwan \ (•◡•) / _bot
Мне надо посчитать сколько символов f стоит перед -
КТо нибудь может сказать в чем ошибка?
masm
model small
.data
mes db 'String ff-or search.',0ah,0dh,'$'
nom db ? ;количество повторений символа 'f'
.stack
db 256 dup(0)
.code
assume ds:@data,es:@data
main proc near
mov ax,@data
mov ds,ax
mov es,ax ;настройка es на ds
lea si, mes
mov al, '-' ; символ для поиска
mov cx, 20
@L:
repne scasb
jz @done ; проверить на 0 ; вроде флаг должен устанвливаться при cx = 0
cmp si, 'f'
jne @next
inc cl ;увеличим число вхождений
@next:
jmp @L ; продолжать цикл пока не конец строки
@done:
mov ax,4c00h ;завершение программы
int 21h
main endp
end main
repne выполнять пока не эквивалент (то есть если байты совпадают, то ZF будет ноль и произойдёт выход из цикла. далее, если ZF ноль, то сразу же выполнит я прыжок jz @done, а далее выход из программы
Aiwan \ (•◡•) / _bot
Мне надо посчитать сколько символов f стоит перед -
КТо нибудь может сказать в чем ошибка?
masm
model small
.data
mes db 'String ff-or search.',0ah,0dh,'$'
nom db ? ;количество повторений символа 'f'
.stack
db 256 dup(0)
.code
assume ds:@data,es:@data
main proc near
mov ax,@data
mov ds,ax
mov es,ax ;настройка es на ds
lea si, mes
mov al, '-' ; символ для поиска
mov cx, 20
@L:
repne scasb
jz @done ; проверить на 0 ; вроде флаг должен устанвливаться при cx = 0
cmp si, 'f'
jne @next
inc cl ;увеличим число вхождений
@next:
jmp @L ; продолжать цикл пока не конец строки
@done:
mov ax,4c00h ;завершение программы
int 21h
main endp
end main
неправильно используешь счётчик cx/cl, у тя получается 2 счётчика, а регистр по сути один
Anton
Aiwan \ (•◡•) / _bot
Anton
а где взять адрес строки? И зачем в коде нужна repne scasb?
Тот код я нашел и модифицировал прост
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
алгоритм дал, дело за малым
Aiwan \ (•◡•) / _bot
адрес метки строки это и есть адрес строки
Aiwan \ (•◡•) / _bot
если по другому сказать, то метка это и есть адрес
Anonymous
Привет!!
Eugene
Опять спамеры...
Michael
Мож на вход задачу решить прикрутить?
Dmitrij
Привет ! Кто на GNU ASM часто пишет ? Есть хотелка: определять входные параметры макросов как строки заключёные в кавычки. Ковырял исходники самого AS, но там на стадии парсинга ковчки выпиливаются, пока не сообразил как запилить ... Мож кто пытался уже, а может уже и решил данную задачу..
Dmitrij
https://sourceware.org/ml/binutils/2020-01/msg00152.html - здесь мне тоже не ответили, там ребята заняты более важными делами (патчи, фиксы...)
Dmitrij
Что я пытался делать: определял новую макро-директиву: .ifquoted, но так как ковычки выпилены - не взлетело .. :(
Мікаель
см. в сторону макроса .irpc
Dmitrij
Не могу сообразить, как директива .irpc может помочь в моём случае (я ведь не знаю изначально строковый параметр или нет). Можешь примерчик набросать ?