Size: a a a

Ассемблер

2019 December 27

楽園松本 in Ассемблер
Навеяло.

Посколько в асм и в Си мы используем императивное программирование, то лучше всего причуить себя называть функции глаголом в форме "сделай": "найди макс", "напечатай", "удали".

В русском переводе такие названия функция часто переводятся как глагол в неопределённой форме типа "найти макс", "напечатать", "удалить".

Я рекомендую изменить этот подход и называть функции глаголом "сделай".

Что это даёт? Самое главное, вы, как программист, сами для себя точно определяете, КТО будет "печатать" или "удалять". В результате вы получите точную и очень конкретную алгоритмическую схему.

Кстати, дальнейшее развитие такой подход получит  в языках программирования, поддерживающие сообщения: вы сообщаете конкретному адресату (ОС, сервису) что он должен сделать.
источник

楽園松本 in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
на нем в стиле ООП писать можно
Вот здесь, я думаю, возникнут проблемы.

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

Тогда вопрос: а может лучше писать на ЯВУ, и пусть компилятор найдёт самое оптимальное решение?

Я лично асм люблю за конкретику: я получаю то, что пишу я.
источник

.

.Ru in Ассемблер
.Ru
Этот код в элемент массива - byte. Процедуры - дальний. Директива описания сегментов стандарт
m:
cmp was[bx],0
jl U
jmp L
U:
shl[was+bx],1
L:
inc bx
loop m
ПОЧИНИЛ! Аааааа
Сейчас понимаю как это было просто и понимаю кто что делает
Только теперь не знаю насколько правильно он работает
источник

.

.Ru in Ассемблер
Нужно вывести измененный массив, который в скрине выше(лучше до и после изменения)
mov ax, 0b800h
mov es, ax
mov byte prt es: [0],(здесь должен быть массив, но как?)
источник

.

.Ru in Ассемблер
Если просто вставить mas
Ошибка too few operands to instruction
Внимание argument needs type override
источник

.

.Ru in Ассемблер
Или подскажите как реализовать (словами) хоть посимвольный вывод из массива на экран
источник

楽園松本 in Ассемблер
.Ru
ПОЧИНИЛ! Аааааа
Сейчас понимаю как это было просто и понимаю кто что делает
Только теперь не знаю насколько правильно он работает
Что это?!
источник

.

.Ru in Ассемблер
Это лабораторная работа в вузе
источник

.

.Ru in Ассемблер
Что-то не так?
источник

.

.Ru in Ассемблер
Задание полностью могу написать
источник

楽園松本 in Ассемблер
Умножить на два все элементы больше нуля?
источник

.

.Ru in Ассемблер
Ниже
источник

.

.Ru in Ассемблер
замени jl и jmp на
jnl u
shl [mas+bx],1
u:
а то как то уродски выглядит
источник

.

.Ru in Ассемблер
Но JNL - это Jump if Not Less (переход, если НЕ меньше). Мне наоборот, переход, если НЕ больше (0)
источник

.

.Ru in Ассемблер
читай лучше так: если не меньше (синоним больше или равно - jge) , то ничего не делать
источник

.

.Ru in Ассемблер
следовательно если это не так, то выполнить код ниже
источник

.

.Ru in Ассемблер
Вот мне надо проверить, что по итогу, если не правильно будет, за юзаю костыли
источник

.

.Ru in Ассемблер
.Ru
Нужно вывести измененный массив, который в скрине выше(лучше до и после изменения)
mov ax, 0b800h
mov es, ax
mov byte prt es: [0],(здесь должен быть массив, но как?)
Поэтому так, либо через турбо дебагер, но я нз как им пользоваться
источник

楽園松本 in Ассемблер
Зачем ты загружаешь bx и тут же обнуляешь?
источник

.

.Ru in Ассемблер
Натуре, сек
источник