Size: a a a

Ассемблер

2020 December 20

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Параметры передаются функции следующим образом.
Первые 5 шт — в регистрах (0=BP, 1=AX, 2=BX, 3=CX, 4=DX), далее (ещё до 5 шт) в стеке в обратном порядке.
Ну там, собственно, всё написано.
Если параметр спецификатора — цифра, то она указывает номер параметра (^43 — это вывод 4-х десятичных цифр из параметра №3, т.е. из CX; цифра '4' здесь — это спецификатор такой, там может быть 'i', 'd', 'x', 'r', 'n' и пр, т.е. '4n' — это сокращённое написание 'Dn:4', где n — параметр, определяющий значение — параметр функции, непосредственное число, адрес в памяти).

Плохо, что я назвал одним словом "параметр" и параметры функции, и параметры спецификаторов. Надо было как-то по-разному обозвать это.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
как у тя все сложно
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
вот мой пример макроса

name db "Вася",0
print <"привет, %s",13,10>,name
источник

DR

Dima Richev in Ассемблер
А вроде легко и просто
источник

ВХ

Віталій Халак... in Ассемблер
Eugene Krasnikov (ᴊɪɴ x)
Вот примеры того, что может функция:

^n@2:8:3^/ — вывести 16-битное знаковое целое минимум из 8 цифр, записанное по адресу DS:BX в системе счисления, указанной в регистре CL, и перевести строку.

^wX03E8 — сделать паузу на 1 секунду.

^2L4.^2H4.^43 — вывести дату в формате DD.MM.YYYY, если перед вызовом функции вы вызвали код:
    mov ah,2Ah
   int 21h ; текущая дата (DL - день, DH - месяц, CX - год, AL - день недели)
На самом деле можно даже день недели вывести, используя таблицу строк (см. примеры).

^Lx10^C1E — переместить курсов в позицию 10 текущей строки и установить жёлтый цвет на синем фоне (для последующего текста).
над ansi.sys надстроить не проще?
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Віталій Халак
над ansi.sys надстроить не проще?
Ну это зависимость от ANSI.SYS.
Тогда и функция не нужна. Просто выводишь коды ANSI и всё :)
источник

ВХ

Віталій Халак... in Ассемблер
вообще не аргумент. зависимость от dos, bios...
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
как у тя все сложно
На самом деле нужно просто прочитать описание как что устроено, тогда всё понятно будет (надеюсь) :)
См. caretprn.inc в архиве.

%s или %i, конечно, удобно, спора нет (хотя символ %, как и \ мне не нравится, особенно когда нужно вывести путь или процент — удваивать каждый раз; например, ^ гораздо реже используется, я сначала хотел ` использовать вообще как самый редкий символ).
Но у тебя нельзя же задать кол-во цифр, систему счисления. Если это всё добавить (а ещё и изменение позиции, установку цвета, вывод значений из регистров), то получится не сильно проще в итоге :)
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Віталій Халак
вообще не аргумент. зависимость от dos, bios...
Аргумент.
ANSI — необязательный драйвер, а BIOS и DOS всегда с тобой.
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Или ты считаешь, что в проге под DOS зависимость от DOS или BIOS может быть проблемой?
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Давай напишем вообще TSR-ку и скажем: прога работает, если установлена TSR-ка.
У вас её нет? Прога не работает? Ну, блин, извините. Это не аргумент :))
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Eugene Krasnikov (ᴊɪɴ x)
На самом деле нужно просто прочитать описание как что устроено, тогда всё понятно будет (надеюсь) :)
См. caretprn.inc в архиве.

%s или %i, конечно, удобно, спора нет (хотя символ %, как и \ мне не нравится, особенно когда нужно вывести путь или процент — удваивать каждый раз; например, ^ гораздо реже используется, я сначала хотел ` использовать вообще как самый редкий символ).
Но у тебя нельзя же задать кол-во цифр, систему счисления. Если это всё добавить (а ещё и изменение позиции, установку цвета, вывод значений из регистров), то получится не сильно проще в итоге :)
Но у тебя нельзя же задать кол-во цифр, систему счисления. Если это всё добавить (а ещё и изменение позиции, установку цвета, вывод значений из регистров), то получится не сильно проще в итоге :)


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

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
Но у тебя нельзя же задать кол-во цифр, систему счисления. Если это всё добавить (а ещё и изменение позиции, установку цвета, вывод значений из регистров), то получится не сильно проще в итоге :)


я делал работу printf, а не сборную возможностей. это все можно сделать как другую функцию, используя непосредственно сам printf
Так, а я делал другую функцию.
Поэтому их не надо сранивать в этом ключе.
У них похожее назначение, конечно, но не одно и то же.
источник

ВХ

Віталій Халак... in Ассемблер
Eugene Krasnikov (ᴊɪɴ x)
Давай напишем вообще TSR-ку и скажем: прога работает, если установлена TSR-ка.
У вас её нет? Прога не работает? Ну, блин, извините. Это не аргумент :))
кроме dos'а больше ничего? cp/m-86,.?
tsr занимает места больше, чем нужно.
как из mbr, допустим, єту красоту вьізьівать? вьіводя табл.раздл. для вьібора pbr, например.
источник

ВХ

Віталій Халак... in Ассемблер
разработать бинарники, которьіе модульно подгр. куда надо
источник

АМ

Алексей Маринченко... in Ассемблер
Черт возьми, у меня разрыв шаблона: ассемблер на каком-то сайте объясняется лучше чем в книге.
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Віталій Халак
кроме dos'а больше ничего? cp/m-86,.?
tsr занимает места больше, чем нужно.
как из mbr, допустим, єту красоту вьізьівать? вьіводя табл.раздл. для вьібора pbr, например.
Да без проблем. Функцию можно юзать даже в MBR, откровенно говоря. Там можно выбрать процедуру для вывода: через DOS или BIOS (с возможностью использования цветов или без оного).
Так что, зависимость от ANSI отдаляет от этой универсальности ещё дальше.
источник

АМ

Алексей Маринченко... in Ассемблер
Кто-то в этом чате кто говорил что php лучше python спросил что мне в нем не нравится. Вот, пожалуйста... 😂😂😂
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Алексей Маринченко
Черт возьми, у меня разрыв шаблона: ассемблер на каком-то сайте объясняется лучше чем в книге.
что за книга?
источник

АМ

Алексей Маринченко... in Ассемблер
Ассемблер это просто
источник