Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2009, 15:12   #1
iggor
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 34
Вопрос TASM - нахождения максимального числа из трех положительных целых чисел и умножения максимального числа

Условие: Написать программу нахождения максимального числа из трех положительных целых чисел и умножения максимального числа на 3 раза само на себя (организовать цикл).
Когда смотришь прогу по шагам, не ищет максимальное число....помогите найти ошибку.

Код:
.model small
.stack 100h
.data
msg1 db 0Ah,0Dh,"a=$"
msg2 db 0Ah,0Dh,"b=$"
msg3 db 0Ah,0Dh,"c=$"
y dw ?
.code
start:
mov ax,@data
mov ds,ax
mov ah,09h
lea dx,msg1
int 21h
mov ah,01h
int 21h
sub al,30h
mov [si],al
mov ax,[si]
mov ah,09h
lea dx,msg2
int 21h
mov ah,01h
int 21h
sub al,30h
mov [si+1],al
mov bx,[si+1]
mov ah,09h
lea dx,msg3
int 21h
mov ah,01h
int 21h
sub al,30h
mov [si+2],al
mov dx,[si+2]
cmp ax,bx
jmp exit
m1:
mov ax,ax
exit:
cmp ax,dx
jg m2
mov ax,dx
jmp exit1
m2:
mov ax,ax
exit1:
mov cx,3
mov bx,ax
m3:
mul bx
loop m3
mov y,ax
mov ax,4c00h
int 21h
end start

Последний раз редактировалось rpy3uH; 22.05.2009 в 15:47.
iggor вне форума Ответить с цитированием
Старый 22.05.2009, 22:30   #2
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Посмотрите решение тут
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 23.05.2009, 11:31   #3
iggor
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 34
По умолчанию

Мне бы надо через model small решать,тот код который по ссылке он с ошибками...
iggor вне форума Ответить с цитированием
Старый 23.05.2009, 13:08   #4
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Код:
.model small
.stack 100h
.DATA
.code
Start:
      mov bx, 0
      mov dx, 0
      mov ah, 1

Input: 
     cmp bl, 3 
     je EndInput
     int 21h
     add bl, 1
     sub al, 48 
     cmp al, 0
     je en_d
     cmp al, dl
     jbe Input 
     mov dl, al
     jmp Input

EndInput: 
     Mov al, dl
     Mov cl, 0

Multipl:
    mul al
    add cl, 1
    cmp cl, 3
    je en_d
    jmp Multipl
en_d:

end start
А по вашей задаче я не вижу сравнение регистров. Наверное, нужно в этом роде cmp al, dl и нужно завести msg4 db 0Ah,0Dh,"вывод=$" куда будем выводить максимальное число

З.Ы: сам плохо разбираюсь в ассемблере, просто мне кажется так надо
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 24.05.2009, 20:16   #5
iggor
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 34
По умолчанию

спасибо)))попробую...
iggor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Напишите функцию нахождения числа с = а^b Настенька..Блонди Помощь студентам 2 28.12.2008 15:21
Реализация алгоритма нахождения максимального потока в сети Myasnik Помощь студентам 3 06.01.2008 06:42
Составить программу нахождения максимального элемента Red Devel Помощь студентам 3 25.12.2007 19:08