Блок схема по коду - Assembler
Формулировка задачи:
Помогите пожалуйста составить блок схему сортировки массива.
Листинг программы
- .model small
- .386
- .data
- mas db 6,11,9,8,3,7,8,1,2,6
- len equ $-mas
- tmp db 0
- .stack 100h
- .code
- start:
- mov ax,@data
- mov ds,ax
- mov cx,len
- dec cx
- big:
- push cx
- xor si,si
- cyc:
- mov al,mas[si]
- cmp al,mas[si+1]
- jbe m1
- mov bl,mas[si]
- mov tmp,bl
- mov bl,mas[si+1]
- mov mas[si],bl
- mov bl,tmp
- mov mas[si+1],bl
- m1:
- inc si
- loop cyc
- pop cx
- loop big
- mov ax,4c00h
- int 21h
- end start
Решение задачи: «Блок схема по коду»
textual
Листинг программы
- lodsb
- mov ah,[si]
- cmp al,ah
- jbe m1
- mov [si]-1,ah
- mov [si],al
- m1:
Объяснение кода листинга программы
lodsb
- загрузка байта из памяти в регистр SI.mov ah,[si]
- перемещение значения из регистра SI в регистр AH.cmp al,ah
- сравнение значений в регистрах AL и AH.jbe m1
- переход к метке M1, если значение в регистре AL больше или равно значению в регистре AH.mov [si]-1,ah
- запись значения в регистре AH в память по адресу, содержащемуся в регистре SI, с уменьшением значения в регистре SI на 1.mov [si],al
- запись значения в регистре AL в память по адресу, содержащемуся в регистре SI.m1:
- метка, к которой происходит переход в случае, если значение в регистре AL больше или равно значению в регистре AH.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д