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, 16
mov bx, 0
find:
push cx
mov si, 0
mov cx, 4
sort:
xor ax, ax
xor bx, bx
mov dl, i
mov al, 4
mul dl
cbw
mov bx, ax

mov dl, 4
cmp dl, i
je back2

back3:
mov al, arr[bx][si+1]
cmp arr[bx][si], al
ja bigger
back:
inc si
loop sort

inc i
pop cx
loop find

jmp after_sort

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

after_sort:
mov cx, 4
mov i, 0
xor bx, bx

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

mov al, arr[bx][si]
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

inc i

mov ah, 09
lea dx, mes3
int 21h

pop cx
loop output

jmp over

back2:
mov i, 0
jmp back3


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

42 ответов

85 просмотров
Ыиу- Автор вопроса

Если что, вот исходник

Ыиу
Если что, вот исходник

ты вроде исходные данные говрил сделаел как массив в памяти, чтоб пользователь не вводил их сам. там этого нет

Ыиу- Автор вопроса
Aiwan \ (•◡•) / _bot
ты вроде исходные данные говрил сделаел как массив...

Это я сделал позже, чтобы было проще отследить ошибку, но что-то нифига

Ыиу- Автор вопроса
Aiwan \ (•◡•) / _bot
ты вроде исходные данные говрил сделаел как массив...

Причем с одномерным массивом все получилось, с двумерным делал на основе кода, который сортировал одномерный массив - ничего. Даже с отладчиком так и не нашел проблему

Ыиу
Причем с одномерным массивом все получилось, с дву...

Так используй одномерный массив и выводи его как двухмерный. Или у тебя массив массивов?

Ыиу
Причем с одномерным массивом все получилось, с дву...

одномерный, двемерный. в памяти то все одно, все в ряд располагаются. тут вопрос в том как выводить.

Ыиу
Причем с одномерным массивом все получилось, с дву...

поэтому сортитруй как одномерный, а выводи как вздумается

Ыиу- Автор вопроса
Aiwan \ (•◡•) / _bot
одномерный, двемерный. в памяти то все одно, все в...

Про то, что разницы в представлении в памяти нет, я знаю. Проблема в том, что нужно сортировать именно как двумерный

Ыиу
Про то, что разницы в представлении в памяти нет, ...

алгоритм такой. представляешь двумерный массив как одномерный, сортируешь как одномерный, выводишь как двумерный

Ыиу- Автор вопроса
Aiwan \ (•◡•) / _bot
алгоритм такой. представляешь двумерный массив ка...

Сортировка должна быть с применением двух "регистров", т.е. все-таки двумерный :(

Ыиу
Сортировка должна быть с применением двух "регистр...

Ну почему же? А что мне мешает использовать два регистра для сортировки одномерного массива

The Bird of Hermes
А у него там не ступенчатый массив?

зависит от способа ввода, куда сохраняются значения

Ыиу
Про то, что разницы в представлении в памяти нет, ...

Так а как тебе надо работать с этим массивом? По каждому столбцу в строке, либо по каждой строке в столбце? Если не написано - значит это одномерный массив, и пофиг что там кто скажет.

Aiwan \ (•◡•) / _bot
зависит от способа ввода, куда сохраняются значени...

Зубчатый это массив указателей на одномерные массивы

КТ315
Так а как тебе надо работать с этим массивом? По ...

От одномерного до двумерного массива разница только в работе, и всё. Порядок получения значений из этого массива определяет его тип.

Aiwan \ (•◡•) / _bot
к него этого нет

А че он тогда мозги себе компостирует

Ыиу- Автор вопроса
The Bird of Hermes
Ну почему же? А что мне мешает использовать два ре...

По сути, это то же самое, чем я сейчас и занимаюсь. Массив состоит из чисел, которые вводятся с клавиатуры (пока что сделал статичный, если исправлю ошибку в нем, сделаю с вводом с клавиатуры)

The Bird of Hermes
А че он тогда мозги себе компостирует

это преподы, сказано было "как двумерный"

Aiwan \ (•◡•) / _bot
это преподы, сказано было "как двумерный"

Ну вот я бы пришёл и показал преподу сортировку одномерным и пошел такой препод лесом

The Bird of Hermes
Ну вот я бы пришёл и показал преподу сортировку од...

И неправильный результат будет. Потому что сортировать надо по каждой строке в столбце, а если просто значения будешь брать - получится вообще не то.

КТ315
И неправильный результат будет. Потому что сортиро...

Ок, тогда я заверну код для одномерного массива в функцию процедуру и вызову по очереди для каждой строки)

The Bird of Hermes
Ок, тогда я заверну код для одномерного массива в ...

Тогда это будет уже сортировка для двумерного массива, ты перехитрил сам себя))

Ыиу- Автор вопроса
КТ315
Так а как тебе надо работать с этим массивом? По ...

В данном задании я с массивом никак работать не буду, только вывод отсортированных чисел. Позже нужно будет указать номер столбца, в котором разность между наименьшим и наибольшим элементом будет максимальна

The Bird of Hermes
Ок, тогда я заверну код для одномерного массива в ...

Если тупо брать значения из памяти от 0 до 10 - это одномерный массив. Если брать значения конкретно по столбцам или строкам - это двумерный. ТОЛЬКО в этом разница, и всё! Это в ЯВУ на глаз можно определять тип массива, а в ассемблере всё только по операциям - структура, стек, массивы - это тупо память, пока ты не будешь работать с этим по какому-то принципу.

КТ315
Если тупо брать значения из памяти от 0 до 10 - эт...

Не совсем. В популярных языках такая абстракция как я заметил не применяется

The Bird of Hermes
Не совсем. В популярных языках такая абстракция ка...

В каких, например? В С вот: [[1,2], [3, 4]] - сразу видно, что двумерный.

КТ315
В каких, например? В С вот: [[1,2], [3, 4]] - сраз...

Ну только это статический массив

The Bird of Hermes
Ну только это статический массив

В ассемблере даже статический всегда одномерный, пока не работаешь с ним как с двумерным.

КТ315
В каких, например? В С вот: [[1,2], [3, 4]] - сраз...

это что за .. народное творчество ?

КТ315
В каких, например? В С вот: [[1,2], [3, 4]] - сраз...

В Си нет такого синтаксиса. А ещё в Си можно int x[2][3] = {1,2,3,4,5,6}; и даже int *y = x; for (size_t i = 0; i < 6; i++} printf("%d\n", y[i]);.

КТ315
В ассемблере даже статический всегда одномерный, п...

В Си нет синтаксиса arr[a, b]. Только arr[a][b], который как раз ориентирован на зубчатые массивы, а для статических это просто сахарок

КТ315
И всё же [2][3].

И всё же свой синтаксис ты взял из питона. В этом и кроется желание писать всё на асме? Ты просто больше ничего не знаешь, да?

s54820
И всё же свой синтаксис ты взял из питона. В этом ...

Нет, просто к счастью забываю этот криворукий язык😁 для меня это идиотский синтаксис.

The Bird of Hermes
Воть

Это я как пример написал. https://t.me/ChatAssembler/276476

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта