Вопрос № 104364: Здравствуйте уважаемые эксперты,пытаясь понять основы ассемблера,столкнулся с маленькой программой,выводящей сообщение на экран.программа собирается но не запускается(стоит масм32 v8).в описании программы сказано что после инструкции invoke GetStdHan...Вопрос № 104369: Здраствуйте, не могли бы вы помочь с написание программы на ассемблере: "Сложение 2х чисел со знаком" (ввод и вывод в двоичном коде). Сколько не
пытался разобраться, никак не получается ((. ...Вопрос № 104434: здраствуйте ! подскажите литературу ,которую необходимо прочитать чтобы чувствовать себя уверенно с Железом . Спасибо...
Вопрос № 104.364
Здравствуйте уважаемые эксперты,пытаясь понять основы ассемблера,столкнулся с маленькой программой,выводящей сообщение на экран.программа собирается но не запускается(стоит масм32 v8).в описании программы сказано что после инструкции invoke GetStdHandle,-11 в регистре еах должно быть число 0сh.но там все нули.пробовал после этой процедуры загонять в еах число och.-не запускается....подскажите что делаю не правильно.
Приложение:
Отправлен: 05.10.2007, 00:39
Вопрос задал: Alexs777 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Egugondiy
Здравствуйте, Alexs777! Ниже приведен рабочий вариант вашей программы. Компилировать так:
ml /coff test.asm /link /subsystem:console
Проверял - работает. Удачи.
Приложение:
Ответ отправил: Egugondiy (статус: 1-ый класс)
Ответ отправлен: 05.10.2007, 10:02 Оценка за ответ: 5
Отвечает: Farit
Здравствуйте, Alexs777!
Что вы имели ввиду под словом не запускается если оно запустилось а потом исчезло тогда попробуите запустить в командной строке или через оболочку FAR ( нажмите после на CNTRL+ O), только могут быть проблемы с кодировкой. функция CetStdHandle, -11 возврощает в eax дескриптор стандартного устройства вывода (дисплей) которой разный в разных компьтерах но насчет нулей незнаю наврядли.
Прогоните програму через какой нибуть отладчик. Про отладку программ написано много например : http://depositfiles.com/files/1915437. Удачи.
Ответ отправил: Farit (статус: 1-ый класс)
Ответ отправлен: 05.10.2007, 10:23 Оценка за ответ: 5
Вопрос № 104.369
Здраствуйте, не могли бы вы помочь с написание программы на ассемблере: "Сложение 2х чисел со знаком" (ввод и вывод в двоичном коде). Сколько не пытался разобраться, никак не получается ((.
Отправлен: 05.10.2007, 02:47
Вопрос задал: Firmament (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: Farit
Ответ отправил: Farit (статус: 1-ый класс)
Ответ отправлен: 05.10.2007, 10:54
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Firmament!
Смотрите приложение.
Знаковые биты для байта -7, слова-15, двойного слова-31
По программе (думаю Вам будет полезна):
а)при вводе чисел:
-вводится только цифры 0 и 1;
-максимальное кол-во цифр = 8(т.е. байт);
-нажатие клавиши "Enter" заканчивает ввод числа.
в)введенное число преобразуется в 10-ое со знаком и выводится рядом.
с)вывод результата в системах: 2-ой, 10-ой(со знаком и без) и еще выводится флаги CF(C) и OF(O); CF — флаг переноса. Устанавливается в 1, если результат предыдущей операции не уместился в приемнике и произошел перенос из старшего бита или если требуется заем (при вычитании), иначе устанавливается в 0. Например, после сложения слова 0FFFFh и 1, если регистр, в который надо поместить результат, — слово, в него будет записано 0000h и флаг CF = 1. OF — флаг переполнения. Этот флаг устанавливается в 1, если результат предыдущей арифметической операции над числами со знаком выходит за допустимые для них пределы. Например, если при сложении двух положительных чисел получается число со старшим битом, равным единице (то есть отрицательное) и наоборот.
Для работы с числами со знаком важны оба этих флага к примеру:
10000000=-128
10000000=-128
сумма будет 00000000 и установленны флаги: CF=1 и OF=1,
или
01000000=64
01000000=64
сумма будет 10000000(-128сз или 128бз) и флаги: CF=0 и OF=1
Анализ результата возлагается на программиста(таких ситуаций всего 4-е для каждого варианта "++","+-" и "--") т.к. только он знает, что там должно быть (процессору безразлично он складывает числа без знака).
ps:советую посмотреть В.Юров "Ассемблер:практикум"
Удачи!
--------- И только наступив на грабли мы приобретаем драгоценный опыт!