Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Asm для начинающих > Вопросы новичка ч1 |
Автор: FelikZ 7.11.2007, 00:21 | ||||
Привет! Помогите пожалуйста понять почему: №1 дано a=-198d=FF3Ah, b=22d=16h, c=9d=9h a/c+b=? -198/22+9=-9+9=0 Вот, что написал я:
Почему? ------------------------------- №2 a/b+b/c a=0258h, b=FEB9h, c=000Ch Вот написал:
Что это такое и как бороться? ------------------------------- Спасибо за помощь! Пишу это все в "debug.com" :(. |
Автор: Akina 7.11.2007, 11:37 |
Щазз! а посмотреть повнимательнее описание команды? |
Автор: FelikZ 7.11.2007, 21:37 | ||
Akina, нет у меня хорошего мануала :cry пользуюсь манулом от масма, а там написано:
я так понимаю, что "If source is a word value, DX:AX is divided by "src", and the quotient is stored in AL and the remainder in DX." должно мне говорить что-то про DX, но я не понимаю этой фразы... ![]() |
Автор: ehg 7.11.2007, 23:18 |
Привет, сам еще только познаю асм, но кажется смысл вот в чем : Если операнд команды idiv одно байтовое число, то делимое берется из AX. Результат: Частное в AL, остаток в AH. Если операнд команды idiv двух байтовое число, то делимое берется из DX(старшая часть):AX(младшая часть). Результат: частное в AX, остаток в DX. У тебя как раз двухбайтовый операнд, так что следи за тем что в DX ;) |
Автор: Mikl_ 12.11.2007, 13:26 | ||
FelikZ, №1 дано a=-198d=FF3Ah, b=22d=16h, c=9d=9h a/c+b=? у а указан знак - значит деление знаковое -198/9+22=-22+22=0 №2 a/b+b/c a=0258h, b=FEB9h, c=000Ch у b знак не указан - значит деление беззнаковое
|