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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2011, 19:54   #1
NARTZISS
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 16
Вопрос Натуральные четырёхзначные числа (assembler)

Добрый день!
Задание:
Получить все натуральные четырёхзначные числа, в записи которых сумма двух левых цифр равна произведению двух правых.


Пока что написал маленький кусочек программы в которой мы введённой число раскладываем на цифры.
В чём ошибка, не могу понять.

Код:
.model small
.stack
.data

msg1 db "num ne 4x znachnoe$"
n1 dw ?
n2 dw ?
n3 dw ?
n4 dw ?
num dw ?
S dw ?
M dw ?

.code
extrn read:near
extrn writer:near
.STARTUP



CALL read
mov num,Ax

mov Ax,num
mov dl,10
div dl
mov byte ptr n4, AH     ;записали в n4 остаток от деления на 10, т.е. 4ю цифру числа num для дальнейшей проверки
mov byte ptr num, AL     ;записали в num целую часть числа которою получили при делении на 10
mov num,Ax
cmp Ax,0                ;сравниваем число num с нулём, для того что бы проверить что число num - действительно четырёхзначное
je r                    ;если num = 0, то выводим ошибку
jmp m1                  ;если не равное нулю то идём дальше

m1:
mov Ax,num              
mov dl,10              
div dl
mov byte ptr n3, AH     ;записали в n3 остаток от деления на 10, т.е. 4ю цифру числа num для дальнейшей проверки
mov byte ptr num, AL     ;записали в num целую часть числа которою получили при делении на 10
mov num,Ax
cmp Ax,0                ;сравниваем число num с нулём, для того что бы проверить что число num - действительно четырёхзначное
je r                    ;если num = 0, то выводим ошибку
jmp m2                  ;если не равное нулю то идём дальше

m2:
mov Ax,num
mov dl,10
div dl
mov byte ptr n2, AH
mov byte ptr num, AL
mov num,Ax
cmp Ax,0
je r
jmp m3

m3:
mov Ax,num
mov dl,10
div dl
mov byte ptr n1, AH
mov byte ptr num, AL
mov num,Ax
cmp Ax,0
je f
jmp r


f:
mov Ax,n1
call writer
mov Ax,n2
call writer
mov Ax,n3
call writer
mov Ax,n4
call writer


r:
mov AH,9
mov dx,offset msg1
int 21h




.EXIT
END
NARTZISS вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Java] четырёхзначные числа последовательности turtles Помощь студентам 2 16.09.2011 11:02
Даны натуральные числа n и m. Получить сумму m последних цифр числа n pahanzona Microsoft Office Excel 11 27.02.2011 02:17
Даны натуральные числа n,p, целые числа a1 , ... ,an. Наталья111 Фриланс 10 09.11.2010 20:09
вводим два числа, получить все меньшие n натуральные числа, квадрат суммы цифр которых равен m Sparky Помощь студентам 2 22.11.2009 21:59
Даны натуральные числа m,n. Посчитать сумму m последнего числа n. лялька Паскаль, Turbo Pascal, PascalABC.NET 6 25.12.2008 15:22