169 похожих чатов

Model small .stack 256 .data arr db 16 dup(?)

mes db 10, 13, "Enter 16 numbers: $"
mes1 db " $"
;mes2 db 10, 13, "Sorted: $"
mes3 db 10, 13, "$"
i db 0
.code
main:
mov ax, @data
mov ds, ax

mov ah, 09
lea dx, mes
int 21h

mov ah, 09
lea dx, mes3
int 21h

mov cx, 4
mov si, 0
init:
push cx
mov cx, 4
sub_init:
xor ax, ax
mov ah, 01
int 21h
mov bl, al
sub bl, 30h
int 21h
sub al, 30h
mov ah, bl
aad
mov arr[si], al
inc si

mov ah, 09
lea dx, mes1
int 21h

loop sub_init

mov ah, 09
lea dx, mes3
int 21h

pop cx
loop init

; mov ah, 09
; lea dx, mes2
; int 21h

; mov ah, 09
; lea dx, mes3
; int 21h

mov cx, 15
mov bx, 0
mov si, 1
find:
push cx
mov cx, 16
sort:
mov dl, i
mov al, 4
mul dl
cbw
mov bx, ax
mov dl, arr[bx][si-1]
cmp arr[bx][si], dl
jb bigger
back:
inc si
loop sort

pop cx
inc i
mov si, 1
loop find

mov cx, 4
mov si, 1
mov i, 0
xor bx, bx
jmp output

bigger:
mov dl, arr[bx][si-1]
mov dh, arr[bx][si]
mov arr[bx][si], dl
mov arr[bx][si-1], dh
jmp back


output:
push cx
mov cx, 4
sub_out:
mov dl, i
mov al, 4
mul dl
cbw
mov bx, ax

mov al, arr[bx][si-1]
cbw
aam
add ax, 3030h
mov bx, ax

mov ah, 02
mov dl, bh
int 21h
mov dl, bl
int 21h

mov ah, 09
lea dx, mes1
int 21h

inc si
xor bx, bx
loop sub_out

mov si, 1
inc i

mov ah, 09
lea dx, mes3
int 21h

pop cx
loop output

; mov cx, 16
; mov si, 0
; cycle:
; push cx
; mov al, arr[si]
; aam
; add ax, 3030h
; mov bx, ax
; mov ah, 02
; mov dl, bh
; int 21h
; mov dl, bl
; int 21h

; mov ah, 09
; lea dx, mes1
; int 21h
; inc si
; loop cycle


over:
mov ax, 4c00h
int 21h
end main

5 ответов

119 просмотров

Ты сам писал или взял в интернете?

Ыиу- Автор вопроса
Ян
Ты сам писал или взял в интернете?

Сам, потому и не работает))

Вот этот mov cx,16 в find, он точно правильный? Собственно, проблема неверного вывода в том, что оно пытается сортировать за пределами массива. А за пределами массива сообщение :)

Ыиу- Автор вопроса
s54820
Вот этот mov cx,16 в find, он точно правильный? Со...

Да, вы были правы, поэтому я внутри цикла find сделал проверку i (это номер строки в двумерном массиве). Если i = 3 (т.е. четвертая строка), то i обнуляем и заново пробегаемся по циклу. Но вот незадача - для проверки ввожу 16 "11", на выводе получаю 15 "11" и одну десятку, которая взялась из неоткуда

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Any electron dev here?
Sayanth Tezro
12
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
так это может кто что знает или использует что-то как макбук только не макбук? на 13…14 дюймов
Michael
9
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Кто-нибудь знает почему SPM клонирует репо целиком? Некоторые репы просто огромные, как та же swift-syntax которая нужна для использования макросов. Сначала подумал, что это...
iMike
6
Карта сайта