![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 17.05.2009
Сообщений: 30
|
![]()
Люди вот у меня тут задание
Если B+4A=4, тогда считать A - 3B, если > 4, то считать 5B+3, если < 4, то считать A/B Вот что я написал, только оно чё то считает не правильно не могу понять почему, кто может помогите плиз, очень надо!! stac segment db 64 dup (0) ends data segment A db ? B db ? Y db ? stA db 13,10,'Введите A = $' stB db 13,10,'Введите B = $' stX db 13,10,'Решение функции...$' stY db 13,10,'Результат Y = $' stQ db 13,10,'Для выхода нажмите любую клавишу...$' ends code segment assume ds ![]() Start: mov ax,data mov ds,ax mov es,ax ;----------------------------------------- ; Вывод строки 'Введите A =' mov ah,09h lea dx,stA int 21h ; Ввод значения переменной A mov ah,01h int 21h sub al,30h mov A,al ; Вывод строки 'Введите B =' mov ah,09h lea dx,stB int 21h ; Ввод значения переменной B mov ah,01h int 21h sub al,30h mov B,al ; Вывод строки 'Решение функции...' mov ah,09h lea dx,stX int 21h ; Решение уравнения mov cl,B mov al,4 ; al:=A mov bl,A imul bl add ax,bx ; ax:=al+bl=B+4A cmp ax,4 ; ax=4 ? т.е. B+4A=0 ? jl m1 ; если B+4A<0, то переход на метку m1 je m2 ; если B+4A=0, то переход на метку m2 mov al,5 ; иначе т.е. B+4A>0, то al:=A mov bl,B imul bl add ax,3 ; al:=5b+3 jmp m_end ; переход на метку m_end m2: mov al,A ; al:=3 mov dh,3 ; al:=al+3=B+3 mul dh sub ax,dh jmp m_end ; переход на метку m_end m1: mov al,A ; al:=B mov bl,B ; ax:=al т.е. al расширяется до ax idiv bl ; al:=bl/al=A/B m_end: mov Y,al ; Y:=al т.е. Y:=результат функции ; Вывод строки 'Результат Y =' mov ah,09h lea dx,stY int 21h ; Вывод ответа mov ah,02h mov dl,Y add dl,30h int 21h ;----------------------------------------- ; Вывод строки 'Для выхода нажмите любую клавишу...$' mov ah,09h lea dx,stQ int 21h ; Ожидание нажатия клавиши mov ah,08h int 21h ; Выход mov ax,4C00h int 21h ends END Start |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
программка | flashpoint412 | Общие вопросы C/C++ | 0 | 09.06.2010 14:01 |
программка на Ассемблере | Flora0 | Помощь студентам | 0 | 02.01.2010 19:13 |
Программка на делфи | a1ertso | Помощь студентам | 2 | 21.12.2009 11:34 |