|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.01.2013, 22:07 | #1 |
Новичок
Джуниор
Регистрация: 19.01.2013
Сообщений: 1
|
Решить пример на Assembler
Пример: (2*a+3*b)/(a-b)
PHP код:
|
23.01.2013, 11:31 | #2 |
Регистрация: 21.11.2010
Сообщений: 5
|
Могу решить на masm32.... с тасмом не работал...
|
23.01.2013, 13:54 | #3 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
brawn
Код:
|
25.01.2013, 21:55 | #4 |
Регистрация: 21.11.2010
Сообщений: 5
|
а чото у меня не вышло решить на masm32.... команда div не срабатывает.... что не так делаю?
;Листинг программы: .386 .model flat,stdcall option casemap:none include C:\masm32\INCLUDE\WINDOWS.INC include C:\masm32\INCLUDE\KERNEL32.INC include C:\masm32\INCLUDE\USER32.INC include C:\masm32\INCLUDE\ADVAPI32.INC includelib C:\masm32\lib\comctl32.lib includelib C:\masm32\lib\user32.lib includelib C:\masm32\lib\gdi32.lib includelib C:\masm32\lib\kernel32.lib includelib C:\masm32\lib\user32.lib includelib C:\masm32\lib\advapi32.lib ;### ;data ;---- .DATA HINST DWORD 0 FOR_PLUS DD ? FOR_MINUS DWORD ? a DW ? x DW ? b DB ? z DB ? t DW ? w DW ? String_SHABLON DB "Равнения (2*a+3*b)/(a-b) = %2x, если a =2, b = 1 ",0 String_CONTENER DB 256 dup (0) ;################################## ## ;code ;----- .CODE START: ;------------- SUB ax , ax ; обнуление регистра SUB bx , bx ; обнуление регистра SUB cx , cx ; обнуление регистра SUB dx , dx ; обнуление регистра mov dword ptr a , 2 ; заносим в переменную "а" число 2 add ax, a ; проводим операцию добавления mov byte ptr b , 1 ; заносим в переменную "b" число 1 add bl, b ; проводим операцию добавления sub ax, bx ; проводим операцию вычисления mov t, ax ; заносим у переменную t значение с регистра ax xor ax, ax ; обнуление регистра xor bx, bx ; обнуление регистра mov ax , 2 mul dword ptr [a] ; проводим операцию умножения mov bl , 3 mul byte ptr [b] ; проводим операцию умножения add ax, bx mov dx, t div dx ; вот она не срабатывает ...... вопрос почему? убрал ее и все работает но без деление....HELP mov w, ax ;------------------------------------------------------------------ invoke wsprintf,\ addr String_CONTENER ,\ ; буфер addr String_SHABLON , \ ; формат w ; ;----------------------------------------------------------------- invoke MessageBox , 0 , addr String_CONTENER ,\ addr String_SHABLON ,\ ; вывод сообщения на экран.... 0 ;------------------------------------------------------------------ EXIT: invoke ExitProcess , 0 END START Последний раз редактировалось dim-lo; 25.01.2013 в 22:07. |
25.01.2013, 23:07 | #5 |
БНТУ ФИТР
Форумчанин
Регистрация: 20.05.2012
Сообщений: 315
|
Cмените регистр DX на другой. При делении слова на слово целая часть заносится в AX, а остаток в DX, а вы на DX делите. Также нужно чтобы при делении в DX было < 10 - иначе будет опять переполнение деления.
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты kventin_zhuk@live.com Последний раз редактировалось kventin_zhuk; 25.01.2013 в 23:11. |
04.02.2013, 22:56 | #6 |
Регистрация: 21.11.2010
Сообщений: 5
|
;так точно, спасибо, совсем вылетело из головы, спасибо, изменил концовку:
mov bl , 3 mul byte ptr [b] ; проводим операцию умножения add ax, bx SUB bx , bx ; обнулением регистры SUB cx , cx SUB dx , dx mov bx, t div bx ; проводим операцию деления mov w, ax ; переводим с регистра в переменную и на дальнейший вывод.... Последний раз редактировалось dim-lo; 04.02.2013 в 22:59. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пример с использованием переходов(Assembler) | C1keu | Помощь студентам | 0 | 13.12.2010 13:37 |
[C++] Как решить пример ? | Divoha | Помощь студентам | 6 | 27.06.2009 19:44 |
Решить пример | Divoha | Общие вопросы C/C++ | 9 | 27.06.2009 16:11 |