У меня есть слово с двойным номером в si: bx. Как я могу записать его в массив как строку?Печать номера двойного слова в строку
ответ
Самый простой способ - преобразовать число в шестнадцатеричный. Каждая группа из 4 бит становится шестнадцатеричной цифрой.
; this is pseudocode
mov di, [addr_of_buffer] ; use the string instructions
cld ; always remember to clear the direction flag
; convert bx
mov cx, 4 ; 4 hexits per 16 bit register
hexLoopTop:
mov al, bl ; load the low 8 bits of bx
and al, 0x0F ; clear the upper 4 bits of al
cmp al, 10
jl decimal
add al, 65 ; ASCII A character
jmp doneHexit:
decimal:
add al, 48 ; ASCII 0 character
doneHexit:
stosb ; write al to [di] then increment di (since d flag is clear)
ror bx ; rotate bits of bx down, happens 4 times so bx is restored
loop hexLoopTop
; repeat for si, note that there is no need to reinit di
Теперь, если вы хотите десятичный вывод, вам понадобится более сложный алгоритм. Очевидный способ сделать это - повторное разделение. Обратите внимание: если у вас есть 32-битный процессор (386 или новее), вы можете использовать 32-битные регистры из 16-разрядного режима, что упростит это.
Переместить si: bx в eax для начала. Чтобы получить следующую цифру, вы выполняете инструкцию cdq для расширения eax в edx: eax, div на 10, а остальная часть в edx - следующая цифра. Фактор в eax равен либо 0, в этом случае вы закончите, либо ввод для следующего раунда цикла. Сначала это даст вам самую важную цифру, поэтому вам нужно будет отменить цифры, когда закончите. Ваш буфер должен быть, по крайней мере, базовым 10 log из 2^32, округленным до 10. Это не так сложно настроить этот алгоритм для работы со знаками целых чисел.
- 1. Печать простого двойного номера в java
- 2. hunspell: Печать номера строки исправленного слова
- 3. Предотвращение округления двойного номера
- 4. Загрузка двойного номера в Tomcat
- 5. Строка, содержащая чередующиеся слова/номера - печать слов по сосчитать
- 6. Печать номера в мозге?
- 7. Тип двойного номера: Int in Swift
- 8. GtkLabel печать отформатированного двойного значение
- 9. Печать двойного массива путем петли
- 10. чтение двойного слова для перевода
- 11. Регулярное выражение для двойного слова
- 12. Печать двойного связанного списка в обратном порядке
- 13. Java печать двойного значения ноль в printf
- 14. Печать Двойного типа данных в C
- 15. отформатированная печать показателя двойного значения в Python
- 16. Печать даты из номера
- 17. Печать всех разделов номера
- 18. Печать рекурсивного номера
- 19. Печать строк номера в C
- 20. Печать Правые номера в java
- 21. Печать номера на ассемблере?
- 22. печать предложения из слова поиска
- 23. Преобразование двойного списка в строку
- 24. Печать следующего слова в последовательности
- 25. Печать слова в формате алмазным
- 26. Печать слова предложения в C?
- 27. Печать всех вариантов слова
- 28. Как сделать строку Печать
- 29. Преобразование номера слова в число строк php
- 30. Печать символов двойного размера с помощью Ncurses