Вопрос № 120836: Помогите, нужно вычислить c(a+d)/b
a,b,c,d заданные числа...Вопрос № 120855: пожалусто!как можно бестрее напишите в розложеном по полочкам виде програму для вичесления с(a+b) где а b c d заданые числа ! Если можно от начала и до конца!ВЫ моя последняя надежда!!!!...Вопрос № 120856: ++++++++++СРОЧНО++++++++++
плииииз дайте мне полный код програмы для вычисления a*b/c зарание всеееем спасибо...Вопрос № 120868: Здравствуйте!
1) первый вопрос я уже задавал, но меня как то не так поняли. Я попытался его изменить. См. приложение 1. Т.е. меня интересует - почему после графического режима не так отображаются русские буквы и можно что-нибудь с этим сделать?<...
Вопрос № 120.836
Помогите, нужно вычислить c(a+d)/b
a,b,c,d заданные числа
Отправлен: 30.01.2008, 12:27
Вопрос задал: NOTCLEAR (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Зенченко Константин Николаевич
Здравствуйте, NOTCLEAR!
Этот код Вам поможет:
MOV AX,a;загружаем регистры
MOV BX,b
MOV CX,c
MOV DX,d
;вычисления
ADD AX,DX;ax=(a+d)
MUL CX;dx:ax=c*(a+d)
;dx-страшая чатсь произведения
;ax-младшая часть произведения
DIV BX
;ax:=dx:ax div bx-целая часть от деления
;dx:=dx:ax mod bx-остаток от деления
Удачи Вам!
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал) Украина, Киев Тел.: +380958380164 Адрес: Украина г.Киев ---- Ответ отправлен: 30.01.2008, 12:49 Оценка за ответ: 5
Вопрос № 120.855
пожалусто!как можно бестрее напишите в розложеном по полочкам виде програму для вичесления с(a+b) где а b c d заданые числа ! Если можно от начала и до конца!ВЫ моя последняя надежда!!!!
Отправлен: 30.01.2008, 14:47
Вопрос задала: Richhabibi (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Richhabibi!
Программа в приложении.
По программе:
1)программа не контролирует число В, т.е. В должно быть не равно 0;
2)при выводе результата после точки выводится остаток от деления на число В.
Удачи!
Приложение:
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал) Украина, Киев Тел.: +380958380164 Адрес: Украина г.Киев ---- Ответ отправлен: 04.02.2008, 17:19
Вопрос № 120.856
++++++++++СРОЧНО++++++++++
плииииз дайте мне полный код програмы для вычисления a*b/c зарание всеееем спасибо
Отправлен: 30.01.2008, 14:51
Вопрос задал: 123454321
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Boriss
Здравствуйте, !
Вот, смотри в приложении - вычисление сделано для вещественных чисел с помощью сопроцессора
Если нужно сделать с целыми числами, то можно и с и без сопроцессора
Напиши в минифоруме, если не то написал :))
Приложение:
--------- Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор) Россия, Саранск Организация: Мордовский госуниверситет, Саранск Факультет Электронной Техники WWW:Программирование на Паскале ---- Ответ отправлен: 30.01.2008, 17:38
Вопрос № 120.868
Здравствуйте!
1) первый вопрос я уже задавал, но меня как то не так поняли. Я попытался его изменить. См. приложение 1. Т.е. меня интересует - почему после графического режима не так отображаются русские буквы и можно что-нибудь с этим сделать?
2) В приложении 2 привожу две программы: а) вычисляю сколько тиков в секунде; б) сколько микросекунд в тике
Запускаю обе программы через Debug (в Windows'е) - т.е. , например, первую запускаю так: " G13c " и в регистре BP смотрю результат (просто я не стал создавать интерфейс по выводу результата на экран).
Так вот по второй программе получаю совершенно не те цифры.
Хотя менял задержки, так же считал сколько ms в секунде, все не так с этими ms.
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Бартосик Феликс Михайлович!
1)
При установке 3-го текстового видеорежима, видеобуфер начинается с адреса 0B800:0000h, именно сюда и запишется текст "Привет!", при установке 0Dh- графического видеорежима, видеобуфер начинается с адреса 0А000:0000h с размером 320х200/2=3200010=7D00h(разрешение режима умножить на количество байт на точку(в этом режиме один байт на 2-е точки, поэтому делим, в текстовом режиме все по другому 2 байта на знакоместо(мерцание+фон+цвет и код символа))).
Если пересчитать в линейные адреса, то получается 0A7D00h(адрес последнего байта видеобуфера) против 0B8000h(адрес первого байта видеобуфера). Именно поэтому у Вас не отображается информация в графическом режиме, т.к. видеобуфер графического режима пустой.
2)
Числа будут разные, т.к. в первом случае Вы ожидаете 1-у секунду, а во втором ставите задержку в микросекундах(CX:DX=00:01(mov CX,0h;mov DX,1)-интервал ожидания в микросекундах=1, а должно быть CX=0Fh и DX=4240h).
Написанно тоже не очень, можно проще:
а)ожидание новой секунды - получить такты А - ожидание новой секунды - получить такты В. Разница между В и А, даст число тактов в секунде;
в)ожидание новой секунды - получить такты А - задержка на 1-у секунду - получить такты В. Разница между В и А, даст число тактов в секунде.
Полученные разности должны быть почти одинаковыми (различия в единицах, только из-за использования прерываний).
Удачи!
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал) Украина, Киев Тел.: +380958380164 Адрес: Украина г.Киев ---- Ответ отправлен: 30.01.2008, 21:27 Оценка за ответ: 4 Комментарий оценки: Здравствуйте Константин Николаевич!
Извините, но мы никак не можем найти с Вами общий язык относительно моих вопросов.
Мой вопрос № 120868.
1) Я не вывожу текст в графическом режиме.
Побывав в нем, возвращаюсь назад в текстовый (у меня же стоит в конце программы "jmp Vasya")
и снова вывожу слово "привет". И вот тут будут другие символы, но не какие попало,
а соответствующие этому слову, но из другой кодировки (не могу их здесь повторить).
2)Я изучал ah=86h int 15h с целью возможности использования задержки с точностью до микросекунды
на практике.
Еще раз привожу код в котором внешний цикл - ждем новой секунды для завершения программы.
А внутри задержка 100 мкс и наращивание счетчика BP. По завершении я предполагал в BP увидеть
10000d, т.е. 2710h. Получаются числа в районе : 6800h-6a00h.
Slovo segment
Org 100h
Begin:
mov AH,2
int 1AH
mov Secund,Dh
WaitNS2:
mov AH,2
int 1AH
cmp Dh,Secund
jz WaitNS2 ;здесь "синхронизация", чтобы стартовать от начала секунды
mov Secund,Dh
mov BP,0 ;счетчик
WaitNS:
mov AH,86h
mov CX,0h
mov DX,100
int 15h ;ждем микросекунду
inc BP
mov AH,2
int 1AH
cmp Dh,Secund
jz WaitNS ;если еще секунда не изменилась - повтор
int 20h
Secund Db ?
Slovo ends
End Begin