Другие языки программирования и технологии

Циклические конструкции в языке Assembler. emu8086.

В emu8086.
Определить, является ли число k степенью числа 2.
Что тут не правильно?

program st3;
var
x:integer;
ispower:boolean;{ключ - может быть степенью или нет}
begin
writeln ('Введите число');
read(x);
ispower:=true;{пока не знаем ничего, считаем, что может}
if x>0 then begin {1 - тоже степень 2, не забываем! }
repeat
if (x mod 2=1)and(x>1) then ispower:=false;
x:=x div 2;
until (x=1)or ispower;
end else ispower:=false;{ 0 или отрицательное число - не степень! }
if ispower then writeln('Степень 2!')
else writeln('Не судьба) ;
end.
> Что тут не правильно?
Кроме синтаксической ошибки в строке else writeln('Не судьба) ; (пропущена закрывающий апостроф) больше ничего не видно.

Программа для emu8086:

#make_exe#
include emu8086.inc

stack segment
  dw 100h dup (?)
ends

data segment
  Prompt db "Введите число: ", 0
  ResultYes db 10, "Cтепень 2!", 0
  ResultNo db 10, "Не судьба", 0
  PromptW db 10, 10, "Для завершения работы нажмите любую клавишу...", 0
ends

code segment
N196763154:
    mov cx, data
    mov ds, cx
    lea si, Prompt
    call print_string
    call scan_num
    jcxz No
DoLoop:
    shr cx, 1
    jnc DoLoop
    jcxz Yes
No:
    lea si, ResultNo
    jmp OutResult
Yes:
    lea si, ResultYes
OutResult:
    call print_string
    lea si, PromptW
    call print_string
    mov ax, 0C01h
    int 21h
    mov ah, 4Ch
    int 21h

define_scan_num
define_print_string

    end N196763154

Виктор Логунов
Виктор Логунов
51 590
Лучший ответ
Вас просят наассемблерничать, а вы напаскалили.
Sergey Kim
Sergey Kim
56 874
Валентин Лелюх Нужно Определить, является ли число k степенью числа 2.
На языке ассемблер. В программе emu8086.
Помогите написать программу, реализующую алгоритм решения задачи.
Вижу паскаль.
А "Программа Emu8086 платная. Однако в течение 30 дней вы можете использовать её для ознакомления бесплатно."
Не понял я, что ты от нас хочешь?
Марат Мингалин
Марат Мингалин
71 305
Валентин Лелюх Нужно Определить, является ли число k степенью числа 2.
На языке ассемблер. В программе emu8086.