Как с помощью ассемблеа вывести аски код символа (16-ричное представление символа)
То есть, например, есть строка:
We are the champions!
На экране должно отобразится следующее:
57 65 20 61 72 65 20 74 68 65 20 63 68 61 6D 70 69 6F 6E 73 21 24
Другие языки программирования и технологии
Ассемблер, вывод символа
Intel80286, TASM/MASM, MS-DOS 2.0 и выше, x16
.286
.model small
.code
N177623966:
mov si, @data
mov ds, si
lea si, String
jmp EnterLoop
DoLoop:
push ax
shr al, 4
call OutHex
pop ax
call OutHex
mov al, 32
int 29h
EnterLoop:
lodsb
test al, al
jne DoLoop
mov ah, 8
int 21h
mov ax, 4C00h
int 21h
OutHex proc
and al, 0Fh
cmp al, 9
jbe OutH
add al, 7
OutH:
add al, 30h
int 29h
ret
OutHex endp
.data
String db "We are the champions!", 0
end N177623966

.286
.model small
.code
N177623966:
mov si, @data
mov ds, si
lea si, String
jmp EnterLoop
DoLoop:
push ax
shr al, 4
call OutHex
pop ax
call OutHex
mov al, 32
int 29h
EnterLoop:
lodsb
test al, al
jne DoLoop
mov ah, 8
int 21h
mov ax, 4C00h
int 21h
OutHex proc
and al, 0Fh
cmp al, 9
jbe OutH
add al, 7
OutH:
add al, 30h
int 29h
ret
OutHex endp
.data
String db "We are the champions!", 0
end N177623966

1
2
3
4
5
6
7
8
9
10
11
12
13
org 100h
xor ax, ax
int 16h ; getch()
aam 16 ; al / 16 -> ah - десятки, al - единицы
or ax, 3030h ; преобразуем в символы ASCII
xchg al, ah ; меняем местами
call @F ; десятки выводим первыим
xchg al, ah ; а потом единицы
@@: cmp al, 39h ; если код символа
jbe @F ; больше '9'?
add al, 7 ; то корректируем его до 'A'-'F'
@@: int 29h ; выводим на экран
ret
2
3
4
5
6
7
8
9
10
11
12
13
org 100h
xor ax, ax
int 16h ; getch()
aam 16 ; al / 16 -> ah - десятки, al - единицы
or ax, 3030h ; преобразуем в символы ASCII
xchg al, ah ; меняем местами
call @F ; десятки выводим первыим
xchg al, ah ; а потом единицы
@@: cmp al, 39h ; если код символа
jbe @F ; больше '9'?
add al, 7 ; то корректируем его до 'A'-'F'
@@: int 29h ; выводим на экран
ret
Похожие вопросы
- Можно ли в ассемблере ascii символ перевернуть на 180 градусов? tasm
- Помогите, нужен код на ассемблере. Вывод меньшего из введенных чисел
- Перевод символа числа в число ассемблер.
- задача на ассемблере: ввести предложение и заменить в нем символ "а" на символ "о" и наоборот Напишите код пожалуйста
- Ассемблер. Ввели строку в консоли - как узнать все ли там цифры или есть другие символы?
- Что может ассемблер?
- Почему многие программисты ненавидят ассемблер?Ведь у него куча плюсов!Он позволяет максимально задействовать
- Ввод вывод на Ассемблере
- Вопрос по изучению языка Ассемблера под MS DOS. (Нужны советы по программному обеспечению/программированию)
- С помощью команд fpu вычислить площадь круга, исходя из введѐнного диаметра. Ассемблер...