|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jun 2006
Messaggi: 116
|
[Assembly] Stampare a video numeri interi
Qualcuno sa spiegarmi come stampare a video un numero intero? Se fosse composto da una sola cifra, basta aggiungere il valore 30h (il codice ascii del numero 0), ma per numeri a più cifre come posso fare?
Ho provato con questo codice ma non funziona: Codice:
.model small
.stack
.data
num1 dw 10
num2 dw 24
result dw ?
.code
.startup
mov ax, num1
add ax, num2
aaa
mov result, ax
add byte ptr result[0], 30h
add byte ptr result[1], 30h
mov al, '$'
mov byte ptr result[2], al
mov ah, 09h
mov dx, offset result
int 21h
.exit
end
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Fai delle divisioni per 10, tante quante bastano per ottenere le singole cifre decimali.
Esempio: Codice:
MOV AX,123 ; numero da convertire MOV BL,10 DIV BL ; AL=12 AH=3 ;... in AH ha la cifra meno significativa ;... MOV AH,0 DIV BL ; AL=1 AH=2 ;... in AL/AH hai le altre cifre ;... Se vuoi convertire un valore a 16 bit unsigned (AX per intero), non basta dividere per 8 bit.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 04-10-2007 alle 21:04. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:23.




















