cmp [bx], 91 - не срабатывает. Почему? Спасибо.
Видимо потому что ассемблер не знает, как это интерпретировать и по умолчанию собирает это как cmp word[bx], 91.
Ага. Спасибо. Вот ещё вопрос: в С все числовые литералы считаются типа int. А какого размера литералы в asm?
Просто числа обычно, без размера. Если в регистр или куда-то ещё не влезет, ассемблер скажет.
Спасибо. А в предыдущем варианте cmp требует не word, a byte? И потому ругается?
cmp byte ptr[bx], 91 или cmp byte[bx], 91. Зависит от ассемблера.
Ну у меня TASM.
адрес же не может тип DWORD должен быть
требовать, диктовать условия должен не cmp, а ты, указывая какого размера память ты хочешь сравнить, байт, слово и тд
будь мужчиной! будь АЛЬФА САМЦОМ! ДОМИНИРУЙ над cmp!! ))
и если хочешь использовать знаковое сравнение используй j(g/l). у тебя идет беззнаковое сравнение
А. Но почему-то работало...
а прпвильно ли. в знаковом сравнении 120d будет больше чем 130d. в беззнаковом наоборот
Ну, скажем, не рабоТАЛО, а срабатывало.)
срабатывало, пока в памяти было положительное число
Обсуждают сегодня