cos2000v1/commande/test.asm

87 lines
1.6 KiB
NASM

model tiny,stdcall
p586N
locals
jumps
codeseg
option procalign:byte
include "..\include\mem.h"
include "..\include\divers.h"
org 100h
xor eax,eax
call biosprint,offset test1
call biosprint,offset retr
call biosprint,offset test2
call biosprint,offset retr
;call whatisitem0,offset test2,0,','
;call biosprinth,eax
call checksyntax0,offset test1,offset test2,','
jc suite
call biosprint,offset test3
suite:
ret
test1 db "c'est un test,2Ah,1d,10111b,test.bin",0
test2 db "?,FFh,65536d,101b,&",0
test3 db "egale "
retr db 0xA,0xD,0
;Affiche le nombre hexa dans %0[dword]
PROC biosprinth FAR
ARG @num:dword
USES ax,bx,cx,edx,si,di
mov edx,[@num]
mov ah,09h
mov di,8
@@hexaize:
rol edx,4
mov si,dx
and si,1111b
mov al,[cs:si+offset @@tab]
mov cx,1
cmp al,32
jb @@control
mov bx,7
mov ah,09h
int 10h
@@control:
mov ah,0Eh
int 10h
dec di
jnz @@hexaize
ret
@@tab db '0123456789ABCDEF'
endp biosprinth
;Affiche le texte ASCIIZ pointé par %0
PROC biosprint FAR
ARG @pointer:word
USES ax,bx,cx,si
mov si,[@pointer]
mov cx,1
mov bx,7
@@again:
lodsb
or al,al
jz @@fin
cmp al,32
jb @@control
mov ah,09h
int 10h
@@control:
mov ah,0Eh
int 10h
jmp @@again
@@fin:
ret
endp biosprint