| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > !!!HELP!!!Деление на ноль |
| Автор: Siborn 18.12.2005, 13:45 |
| помогите сделать, чтобы при делении шла проверка на деление на ноль и, если делится на ноль, чтобы выходило сообщение о том, что на ноль делить нельзя вот код m4: cmp al,'/' ;сравнение al со знаком / jne menu ;если не равно, то переход на menu call input ;вызов процедуры ввода mov eax,op1 ;копирование ор1 в ах div d ;деление ах на d mov op1,eax ;копирование ах в ор1 jmp menu ;переход на menu |
| Автор: Siborn 18.12.2005, 14:58 |
| блин ну ктонить пажалуста....мне курсач сдавать заффтра а он не пашит ( |
| Автор: Siborn 18.12.2005, 15:34 |
| спасибо за помощь |
| Автор: Леша 18.12.2005, 18:04 | ||
|
| Автор: Siborn 18.12.2005, 19:44 |
| спасиба канешна, но я уже сделал...и гораздо проще кстати |
| Автор: cardinal 18.12.2005, 21:27 |
| Siborn, во-первых не забывай, что тебе здесь никто ничего не должен. Во-вторых то, что курсач тебе сдавать завтра это проблема, которую ты себе создал сам. В третьих на выходных всегда меньше народу на форуме и поэтому нечего тут ждать быстрого ответа. И откуда твое d взялось кстати тоже не понятно... |
| Автор: Siborn 18.12.2005, 21:42 |
| cardinal ок извини был неправ погорячился вовторых курсач был готов неделю назад, но препод тварь сделал нам подарок на выходные - сделать коечто ещо помимо стандартного задания курсача... втретьих странна...обычно наоборот чтобы понять откуда d можно было глянуть в темку где весь код курсача есть а вообще это вторая переменная на которую нужно делить но уже ненада...уже сделал..... вот только почемуто иногда при операциях с большиим числами он неправильно считаит ((( и при умножении 65535 на 65535 выводит результат 4294836225 но при попытке ввести это число как первую переменную выдаётся ошибка о том что это ичсло очень большое ( не подскажите в чём дело? |
| Автор: cardinal 18.12.2005, 22:12 | ||||
Если делаешь так
то ошибки быть не должно. То есть проверь везде, что ты с 32 разрядным регистром работаешь, а не с ax, ah или al. Не забывай пользоваться тегами. |
| Автор: Siborn 18.12.2005, 22:32 |
| не немного по другому но спасибо проверю везде ах и еах |
| Автор: Akina 18.12.2005, 22:42 | ||
Что-то я вообще не понял сути вопроса... тебе нужно проверить делимое на равенство нулю? или тебе нужно INT 0 отловить (который, кстати, и при переполнении тоже...)? |
| Автор: Siborn 19.12.2005, 11:39 | ||||||
| Akina мне нужно было сделать проверку на "деление на ноль" тоесть если делитель ноль - то должна выводиться ошибка "на ноль делить нельзя" но с этим я справился уже.... сейчас до завтра разрешили доделать... нужно сделать чтобы при вычитании выдавался отрицательный результат ( вот код вычитания:
m3 - метка следующей операции d - (вторая переменная (которую вычитаю) op1 - первая переменная (из которой вычитаю) я посидел на паре подумал и вот что придумал: (только неправильно считает почиму то (
вот здесь я поставил проверку на то какая переменная больше и если больше вторая переменная (которую вычитаю) то нужно из неё вычесть первую но почему то прога выводит результат саму вторую переменную с минусом ( вот весь код можете проверить (написано в фаре компилить тасмом и тлинком из паскаля):
з.ы. комменты блин не видно тут ( |