Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 113
от 14.04.2005, 20:20

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 3


Вопрос № 19428: Здравствуйте! Помогите, пожалуйста, составить программу для вычисления величин z: z=3x+y при x>=10 z=5x-y при x<10 Число х поступает на порт Р1, число у - через порт Р2; число z должно храниться в ячейке ОЗУ 30h. Считать, что x,...

Вопрос № 19428
Здравствуйте!
Помогите, пожалуйста, составить программу для вычисления величин z:
z=3x+y при x>=10
z=5x-y при x<10
Число х поступает на порт Р1, число у - через порт Р2; число z должно храниться в ячейке ОЗУ 30h. Считать, что x, y, z, а также результаты промежуточных и окончательных вычислений - это целые числа, находящиеся в пределах 127...+127.
Отправлен: 09.04.2005, 15:56
Вопрос задал: mario (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: Евгений Иванов
Здравствуйте, mario!
mov eax, [x]
lea ecx, [eax*2]
cmp eax, 10
jc @@m10
add eax,ecx
add eax,[y]
jmp @@m50
@m10:
shl ecx,1
add eax,ecx
sub eax,[y]
@m50:
mov [z],eax
всего хорошего!
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 10.04.2005, 00:12

Отвечает: Стас
Здравствуйте, mario!
in al,p1 ;x
mov ah,al ;x
mov cl,al ;x
add cl,cl ;2x
in al,p2 ;y
cmp ah,10 ;x>10?
jb less ; если меньше то jmp less
add ah,cl ;x+2x=3x
add ah,al ;3x+y
jmp result
less:
add cl,cl ;2x+2x=4x
add ah,cl ;x+4x=5x
sub ah,al ;5x-y
result:
mov ds:[30h],ah ; z=...
Ответ отправил: Стас (статус: Практикант)
Отправлен: 10.04.2005, 00:49

Отвечает: DSota
Здравствуйте, mario!
Я думаю, там все-таки быо -127...+127, в противном случае программа бедет иметь вид "mov byte ptr[30h],3*127+127", тем более результат при этом будет 508, что противоречит условию - что все результаты окончательных вычислений равны 127...
in al,p1;x
mov ah,al;x-x
shl ah,1;2x-x
add al,ah;2x-3x
mov byte ptr[30h],al;z=3x
in al,p2;y
cmp ah,20
jge @@l0;сравнение знаковое - т.к. -127...127
neg al;-y
add al,ah;2x-y
@@l0:
add byte ptr[30h],al;z
Ответ отправил: DSota (статус: Студент)
Отправлен: 11.04.2005, 11:07


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Отписаться

В избранное