Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр - Assembler

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста с задачей. Нужно найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр. Есть код на паскале ума не приложу,как его перевести в Fasm
funktion nom2(n:integer):boolean;
var
 f:boolean;
 c.x:integer;
  begin
   x:=n;
   f:=true;
   while f and (x>0) do
     begin
      c:=x mod 10;
      f:=f and((c in [0..1])or(n mod c=0));
      x:=x div 10;
     end;
    nom:f;
  end;
var
n,i,c:integer;
 begin
  readln(n);
  write(1);
  for i:=2 to n do
  if nom2(i) then
    write(';',i);
    writeln;
 end.
Возможно Вы мне сможете помочь написать программу удаления пробелов из строки при просмотре ее слева направо так же в Fasm. Из всего что рассказал препод, я запомнила, что у нас две первые строки это
use 16; генерирует 16-битный код
org 100h; программа начинается с адреса 100h
; потом идет тело программы
mov ah,8
int 21h;задержка экрана
 
mov ax,4c00h;
int 21h; завершение программы

Решение задачи: «Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр»

textual
Листинг программы
.model tini
.code
org 100h
start:
lea dx,mes
mov ah,9
int 21h
cld
mov si,offset mes
push si
pop di
@@1
lodsb
cmp al
je @ exit
cmp al,' '
je @@1
stosb
jmp @@1
@exit
stosb
mov ah,2
mov dl,ODh
int 21
mov dl,OAh
int 21h
mov dl,OAh
int 21h
lea dx,mes
mov ah,9
int 21
ret
mes db 'это строка для сжатия$'
end start

Оцени полезность:

11   голосов , оценка 3.727 из 5
Похожие ответы