Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр - Assembler
Формулировка задачи:
Помогите пожалуйста с задачей. Нужно найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр. Есть код на паскале ума не приложу,как его перевести в Fasm
Возможно Вы мне сможете помочь написать программу удаления пробелов из строки при просмотре ее слева направо так же в 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.
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