Подскажите в 4ем ошибка:
...пишу макрос
mac macro reg
if reg eq 0
xor bp,bp
elseif reg eq 1
inc bp
inc bp
esleif reg eq 2
add bp,6
else
add bp,8
endif
endm
... компилятор орет на регстр :"Illegal use of register"
подскжите как лу4ше преобразовать или напишите плз иной способ
(желательно без cmp).
> Подскажите в 4ем ошибка: > ...пишу макрос > mac macro reg > if reg eq 0 > xor bp,bp > elseif reg eq 1 > inc bp > inc bp > esleif reg eq 2 > add bp,6 > else > add bp,8 > endif > endm > ... компилятор орет на регстр :"Illegal use of register" > подскжите как лу4ше преобразовать или напишите плз иной > способ > (желательно без cmp). В приведенном коде ошибок не видно. Ты напиши, как к нему обращаешься(макросу)
Условное ассемблирование.04.11.01 17:43 Автор: kar Статус: Незарегистрированный пользователь
> > Подскажите в 4ем ошибка: > > ...пишу макрос > > mac macro reg > > if reg eq 0 > > xor bp,bp > > elseif reg eq 1 > > inc bp > > inc bp > > esleif reg eq 2 > > add bp,6 > > else > > add bp,8 > > endif > > endm > > ... компилятор орет на регстр :"Illegal use of > register" > > подскжите как лу4ше преобразовать или напишите плз > иной > > способ > > (желательно без cmp). > В приведенном коде ошибок не видно. Ты напиши, как к нему > обращаешься(макросу) ...
не ну как..описываю макрос (см выше) до его вызова,затем
его вызываю (mac di)... вроде так
> > > Подскажите в 4ем ошибка: > > > ...пишу макрос > > > mac macro reg > > > if reg eq 0 > > > xor bp,bp > > > elseif reg eq 1 > > > inc bp > > > inc bp > > > esleif reg eq 2 > > > add bp,6 > > > else > > > add bp,8 > > > endif > > > endm > > > ... компилятор орет на регстр :"Illegal use of > > register" > > > подскжите как лу4ше преобразовать или напишите > плз > > иной > > > способ > > > (желательно без cmp). > > В приведенном коде ошибок не видно. Ты напиши, как к > нему > > обращаешься(макросу) > ... > не ну как..описываю макрос (см выше) до его вызова,затем > его вызываю (mac di)... вроде так ну ты даешь.
Вся макроподстановка(замена макросов кодом) происходитДОтрансляции программы. В качестве аргумента в if нельзя передавать регистр. If можно использовать для сравнения констант(определенных с помощью equ, переменных времени компиляции, размера переменных и т.п.
Есть хорошая книжка by Пильщиков В.Н. "ASSEMBLER". Дает хорошее представление о базовых понятиях