Нарисуйте блок-схему для программы на ассемблере, народ помогите! - Компьютерные вопросы

Вопрос Нарисуйте блок-схему для программы на ассемблере, народ помогите!

Регистрация
17 Авг 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
.model tiny
.code
org 100h
start:
mov si,0
mov al,X
m0:cmp al,A[si]
je m1
inc si
cmp si,N
jb m0
m1:ret
N dw 10; 2n
A db 3,7,1,5,-10
X db 5
end start
 
Регистрация
6 Апр 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
Если бы свой адрес оставил, я бы мог отправить по почте бумагу и карандаш. Тогда точно сможешь рисовать. Только линейки у меня нет, но думаю от руки тоже сойдет, если аккуратно все делать
 

ZWR

Capitan

ZWR

Capitan
Регистрация
13 Дек 2013
Сообщения
91
Репутация
0
Спасибо
0
Монет
0
Итак, начнём транслировать asm в что-то более привычное. Для меня привычнее php :) 1. //предопределённые переменные N dw 10; 2n A db 3,7,1,5,-10 X db 5 $N = 10; $A = [3,7,1,5,-10]; $X = 5; 2. mov si,0 mov al,X $si = 0; $al = $X; 3. cmp al,A[si] je m1 if($al != $A[$si]){ }else{ //это и есть метка m1 } 4. inc si cmp si,N jb m0 do{ // ... }while(++$si<$N) что же у нас получается... собираем воедино Тут есть маленький нюанс. В блоке 3 (три) у нас ветка if осталась без действий. Потому имеет смысл её схлопнуть и поменять условие на обратное $N = 10; $A = [3,7,1,5,-10]; $X = 5; $si = 0; $al = $X; do{ if($al == $A[$si]){ return $si; } }while(++$si<$N) return $si Программа находит индекс элемента в массиве $A, который равен $X Если опустить инициализацию переменных, на оставшиеся 6 строк высокоровневого языка блок схему нарисовать сумеешь? :)
 
Сверху Снизу