|
|
|
![]() |
|
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 20:04. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:20.