Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:basic_dialogue_programming_language:106 [2023-02-18 17:05] GreyWolf |
msx:basic_dialogue_programming_language:106 [2023-02-19 16:27] (текущий) GreyWolf |
||
---|---|---|---|
Строка 4: | Строка 4: | ||
{{anchor:n106}} | {{anchor:n106}} | ||
====== 1.6. Реализация вещественной арифметики на машинном языке ====== | ====== 1.6. Реализация вещественной арифметики на машинном языке ====== | ||
- | FIXME | ||
<WRAP group> | <WRAP group> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Изучай все не из тщеславия, а ради | Изучай все не из тщеславия, а ради | ||
\\ практической пользы. | \\ практической пользы. | ||
Строка 126: | Строка 125: | ||
<WRAP group> | <WRAP group> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Наиболее полезны те советы, которым | Наиболее полезны те советы, которым | ||
\\ легко следовать. | \\ легко следовать. | ||
Строка 161: | Строка 160: | ||
===== 1.6.3. Арифметические операции над вещественными числами ===== | ===== 1.6.3. Арифметические операции над вещественными числами ===== | ||
- | ^ Имя \\ подпрограммы ^ Адрес ^ Выполняемые \\ действия ^ //Тип// ^ Изменяемые \\ регистры ^ | + | ^ Имя \\ подпрограммы ^ Адрес ^ Выполняемые \\ действия ^ Изменяемые \\ регистры ^ |
|DECSUB|268Ch|DAC := DAC-ARG|A,B,C,D,E,H,L,DAC| | |DECSUB|268Ch|DAC := DAC-ARG|A,B,C,D,E,H,L,DAC| | ||
|DECADD|269Ah|DAC := DAC+ARG|A,B,C,D,E,H,L,DAC| | |DECADD|269Ah|DAC := DAC+ARG|A,B,C,D,E,H,L,DAC| | ||
Строка 370: | Строка 369: | ||
===== 1.6.7. Преобразование чисел для вывода на печать ===== | ===== 1.6.7. Преобразование чисел для вывода на печать ===== | ||
- | <code> | + | Для преобразования из //строки// в //число// используется подпрограмма с именем |
- | Для преобразования из с т р о к и в ч и с л о используется подпро- | + | |
- | грамма с именем | + | FIN (3299h) |
- | ┌────────────────────────────────────────────────────────────────────┐ | + | * __//Аргументы//__: |
- | │ FIN (3299h) │ | + | * HL — адрес строки символов, |
- | │ А р г у м е н т ы: HL - адрес строки символов, │ | + | * A — первый символ строки. |
- | │ ───────────────── A - первый символ строки. │ | + | * __//Результаты//__: |
- | │ Р е з у л ь т а т ы: DAC - вещественное число, │ | + | * DAC — вещественное число, |
- | │ ─────────────────── C - { 0 - была десятичная точка, │ | + | * C — |
- | │ { FFh - десятичной точки не было, │ | + | * 0 — была десятичная точка, |
- | │ B - количество цифр после десятичной точки, │ | + | * FFh — десятичной точки не было, |
- | │ D - количество цифр в числе. │ | + | * B — количество цифр после десятичной точки, |
- | └────────────────────────────────────────────────────────────────────┘ | + | * D — количество цифр в числе. |
- | Для в ы в о д а имеются две подпрограммы: | + | |
- | ┌─────────────────────────────────────────────────┐ | + | |
- | │ FOUT (3425h) - неформатный вывод, │ | + | Для //вывода// имеются две подпрограммы: |
- | │ PUFOUT (3426h) - форматный вывод. │ | + | * FOUT (3425h) — неформатный вывод, |
- | └─────────────────────────────────────────────────┘ | + | * PUFOUT (3426h) — форматный вывод. |
- | Эти подпрограммы преобразуют число, находящееся в DAC, в строку симво- | + | |
- | лов. | + | Эти подпрограммы преобразуют число, находящееся в DAC, в строку символов. |
- | Аргументы: A - формат; содержимое его битов может быть следующим: | + | |
- | ───────── bit7: если 1, то вывод осуществляется по формату; | + | __Аргументы__: |
- | bit6: если 1, то через каждые 3 цифры вставляются запятые; | + | * A - формат; содержимое его битов может быть следующим: |
- | bit5: если 1, то первые нули заменить на символ "*"; | + | * bit7: если 1, то вывод осуществляется по формату; |
- | bit4: если 1, то перед числом вставить символ "$"; | + | * bit6: если 1, то через каждые 3 цифры вставляются запятые; |
- | bit3: если 1, то число выводится всегда со знаком; | + | * bit5: если 1, то первые нули заменить на символ "*"; |
- | bit2: если 1, то вставить знак после числа; | + | * bit4: если 1, то перед числом вставить символ "$"; |
- | bit1: не используется; | + | * bit3: если 1, то число выводится всегда со знаком; |
- | bit0:{если 0, то число выводится с фиксированной точкой; | + | * bit2: если 1, то вставить знак после числа; |
- | {если 1, то число выводится с плавающей точкой; | + | * bit1: не используется; |
- | B - количество цифр перед точкой; | + | * bit0: |
- | C - количество цифр после точки + 1. | + | * если 0, то число выводится с фиксированной точкой; |
- | Результаты: HL - начальный адрес строки символов. | + | * если 1, то число выводится с плавающей точкой; |
- | ────────── | + | * B — количество цифр перед точкой; |
- | </code> | + | * C — количество цифр после точки + 1. |
+ | __Результаты__: HL — начальный адрес строки символов. | ||
{{anchor:e1060-11}} __//Пример 11//__. Вычисление косинуса вещественного числа.\\ {{.examples:1060-11.bas|}} \\ [[+tab|wmsxbpge>1060-11.bas]] | {{anchor:e1060-11}} __//Пример 11//__. Вычисление косинуса вещественного числа.\\ {{.examples:1060-11.bas|}} \\ [[+tab|wmsxbpge>1060-11.bas]] | ||
Строка 429: | Строка 429: | ||
</code> | </code> | ||
- | <code> | + | Остальные подпрограммы перечислены ниже: |
- | Остальные подпрограммы перечислены ниже: | + | ^ Имя подпрограммы ^ Адрес ^ Выполняемые действия ^ |
- | ┌────────┬───────┬────────────────────────────────────────┐ | + | |FOUTB|371Ah|Целое число ──▶ в двоичный вид| |
- | │ Имя │ │ │ | + | |FOUTO|371Eh|Целое число ──▶ в восьмеричный вид| |
- | │ подпро-│ Адрес │ Выполняемые действия │ | + | |FOUTH|3722h|Целое число ──▶ в шестнадцатеричный вид| |
- | │ граммы │ │ │ | + | |
- | ├────────┼───────┼────────────────────────────────────────┤ | + | Для этих подпрограмм: |
- | │ FOUTB │ 371Ah │ Целое число ──▶ в двоичный вид │ | + | \\ __//Аргументы//__: |
- | │ FOUTO │ 371Eh │ Целое число ──▶ в восьмеричный вид │ | + | * DAC — целое число, |
- | │ FOUTH │ 3722h │ Целое число ──▶ в шестнадцатеричный вид│ | + | * VALTYP = 2. |
- | └────────┴───────┴────────────────────────────────────────┘ | + | __//Результаты//__: |
- | Для этих подпрограмм: | + | * HL — начальный адрес строки. |
- | А р г у м е н т ы: DAC - целое число, | + | |
- | ───────────────── VALTYP = 2. | + | |
- | Р е з у л ь т а т ы: HL - начальный адрес строки. | + | |
- | ─────────────────── | + | |
- | </code> | + | |
---- | ---- |