Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ассемблер _ запись обратного порядка

Автор: Ирочка 29.09.2006 0:39

Ребята помоги пожалуйста немогу разобрать...
Составить программу определения чила, полученного записью обратного порядка цифр заданного числа. Заданное число вводится с клавиатуры.

Автор: SuperMozg 29.09.2006 4:18

Примерно так:

var
num: integer;
i, j: integer;
mas: array[1..10] of integer;
begin
writeln('Введите число:');
readln(num);
i:= 0;
repeat
i:= i + 1;
mas[i]:= num mod 10;
num:= num div 10;
until num=0;
writeln('Число в обратном порядке:');
for j:= 1 to i do write(mas[j]);
readln;
end.

Автор: volvo 29.09.2006 4:45

SuperMozg, на название раздела не смотрел? Посмотри, помогает!!!

Автор: Гость 29.09.2006 21:28

Только вот ещё проблема мне её надо на Асемблре сделать ((

Автор: zloy_pes 30.09.2006 21:49

Еще актуально? Никак не пойму - должно быть так - ввожу: 123, после на экране появляется 321? Или надо этот набор символов превратить в число и сунуть память?

Код

.model tiny
.data
buff db 6 dup('$')
nxtln db 0dh,0ah,'$'
.code
org 100h
start:
mov bx,offset buff
@c1:
mov ah,01h
int 21h
cmp al,0dh
je @n1
mov [bx],al
inc bx
jmp @c1
@n1:
push bx
sub bx,offset buff
mov cx,bx
push cx
mov dx,offset nxtln
mov ah,09h
int 21h
pop cx
pop bx
@c2:
dec bx
mov dl,[bx]
mov ah,06h   ;Если нужно сформировать число в памяти, то надо поменять на sub dl,'0'
int 21h          ;mov [di=куда класть число],dl и inc dl
loop @c2
xor ax,ax
int 16h
ret
end start


Автор: Гость 1.10.2006 4:16

Да всё правильно ... нужно вводить 123 а что бы появилось 321...