Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
UN RESOLVEUR SUDUKO AVEC ASSEMBLEUR NASM
Information sur la source
Description
Un resolveur suduko avec assembleur NASM il y a dans la source une fonction iteratif et une autre recursif aussi les tests de saisie en rempliant la grille
Source
- bits 16
- org 0x0100
- section .data
-
-
- ph db 'Taper ENTER ou ESC pour Voir solution $'
- ph1 db 'Mountassir Youssef 2IIR3 EMSI','$'
- ph3 db 'msavyo1@hotmail.com','$'
- ph2 db 'Pas de solution$'
- section .bss
-
- yy resb 1
- cd resb 81
- x resb 81
- xx resb 81
- sol resb 1
- nbr resw 1
-
- good resb 1
-
-
-
-
-
- [section .text]
- mov ax,3
- int 10h
- mov ax,1112h
- mov bl,30h
- int 10h
- mov ah,1
- mov ch,8
- mov cl,12
- int 10h
-
-
-
- ;****MOUNTASSIR ---YOUSSEF------2IIR3********
-
-
- call cadre1
- call cadre2
- call cadre3
- call col
- call souris
-
- ;**********affichage phrase**************************
- mov dl,40
- mov dh,10
- call gotoxy
- mov bx,ph
- call puts
-
- mov dl,40
- mov dh,13
- call gotoxy
- mov bx,ph1
- call puts
-
- mov dl,40
- mov dh,15
- call gotoxy
- mov bx,ph3
- call puts
- ;**********FIN affichage phrase*************************
-
- mov cx,81
-
- initial:
-
- here:mov bx,cx
- mov byte [(bx+cd)-1],'0'
- loop here
-
-
-
- mov dl,1
- mov dh,1
- call gotoxy2
-
-
- click :
-
-
-
-
-
-
- call getch
-
- cmp al,13
- jnz z1
-
- mov al,27
-
-
- z1 :cmp al,27
-
-
-
- jnz z2
-
- call backo
-
- mov [nbr],bp
- mov byte [xx+bp],255
-
- call posa
- call tri
-
-
- mov bp,-1
-
-
-
-
-
-
-
-
- ;call solurecursif
- call soluiteratif
- cmp byte [good],1
- jz afi
- mov al,7
- call putchar
- mov bx,ph2
- call clrscr
- call puts
- call getch
-
-
- jmp outaa
-
-
- afi
- call afff
-
-
-
-
-
-
-
- outaa :
-
-
-
- call outa
-
-
- z2 :cmp al,0
-
- jnz koko
- call direc
- jmp click
- koko
-
-
-
- cmp al,8
-
- jnz too
- mov al,0
- call dakhal
- mov al,0
-
- call putchar
- call gotoxy2
- jmp click
-
-
- too:
- cmp al,'1'
-
- jl click
-
- cmp al,'9'
-
- jg click
-
- ;******************************test col reg lig*******************
- call tst
-
- cmp byte [sol],0
- jz click
-
- ;**************************************
- call dakhal
-
-
-
-
- call putchar
- call gotoxy2
-
-
-
- jmp click
-
-
-
-
-
-
-
-
- ;************************VERIFICATION DU LIMITES DE CURSEUR****************
- tet:
- cmp dh,0
- JG aca
- mov dh,9
- jmp ddd
- aca:
- cmp dh,10
- jl bbb
- mov dh,1
- jmp ddd
-
- bbb:
- cmp dl,0
- jg ccc
- mov dl,9
- jmp ddd
-
- ccc:
- cmp dl,10
- jl ddd
- mov dl,1
-
- ddd:
- call gotoxy2
- ret
- ;*****************FONCTION AFFICHAGE PHRASE************************************
- puts:
- mov al,[bx]
- cmp al,'$'
- jz barap
- call putchar
- inc bx
- jmp puts
- barap :
- ret
- ;********************************************************
- call clrscr
- mov dh,0
- mov dl,0
- call gotoxy
- ;*************AFFICHAGE MATRICE FINAL******************
- afff:
- mov dh,-1
- mov dl,0
- call gotoxy
- mov cx, 9
- mov bp,0
- matr:
- add dh,4
- mov dl,3
- call nl
- mov bx,0
- la:
- mov al,[cd+bp]
- call gotoxy
- add dl,4
- call putchar
- inc bp
- inc bx
- cmp bx,9
- jnz la
- loop matr
- call getch
- ret
- ;***************************************
- outa
- mov ax, $4C00
- int $21
- ret
- ;**********************************
- direc
- call getch
- cmp al,77
- jnz aa
- add dl,1
- jmp dir1e
- aa:
- cmp al,75
- jnz bb
- add dl,-1
- jmp dir1e
- bb:
- cmp al,80
- jnz cc
- add dh,1
- jmp dir1e
- cc:
- cmp al,72
- jnz dir1e
- add dh,-1
-
- dir1e:
- call tet
- ret
- ;**********************************
- testligne:
- push dx
-
- mov dl,1
- ligne :
- call adrbx
- cmp [cd+bx],al
- jnz ti1
- mov byte [sol],0
- ti1
- inc dl
- cmp dl,10
- jnz ligne
- pop dx
- ret
- ;***********************************
- testcol:
- push dx
-
- mov dh,1
- colonnes :
- call adrbx
- cmp [cd+bx],al
- jnz ti2
- mov byte [sol],0
- ti2
- inc dh
- cmp dh,10
- jnz colonnes
- pop dx
- ret
- ;**********************************
-
- ;*******************************
- testreg:
-
-
- push dx
- push ax
- mov ah,0
- mov bh,3
-
- mov al,dl
- sub al,1
- div bh
- mul bh
- mov dl,al
- add dl,1
-
- mov al,dh
- sub al,1
- div bh
- mul bh
- mov dh,al
- add dh,1
- pop ax
- mov [yy],dl
-
-
-
- mov bp,3
- reg:
-
- mov dl,[yy]
- mov cx,3
- sreg
- call adrbx
- cmp [cd+bx],al
- jnz ti3
- mov byte [sol],0
- ti3
-
- inc dl
-
- loop sreg
-
- inc dh
- dec bp
- jnz reg
-
- pop dx
- ret
- ;*********************************
-
- backo:
- mov bx,0
- mov bp,0
- lp
-
- cmp byte [cd+bx],'0'
- jnz lpi
-
- mov byte[xx+bp],0
- mov [x+bp],bl
-
-
- inc bp
- lpi:
- inc bx
- cmp bx,81
- jnz lp
-
-
- ret
-
- ;*******************************
- posa
- mov cx,[nbr]
-
- mov bh,0
- .ici
- mov ax,cx
- mov bp,cx
- sub bp,1
- mov bl,[x+bp]
- call calcino
-
- call pos
- mov cx,ax
-
- loop .ici
- ret
- ;**************************************
- pos
- push ax
- mov cx,9
- .ici
- mov al,cl
- add al,48
- call tst
- cmp byte[ sol],0
- jz .a
- inc byte [xx+bp]
- .a
- loop .ici
- pop ax
- ret
-
- ;********************************
- tri
- .deb
- mov cx,[nbr]
- sub cx,1
- .ici
- mov bp,cx
-
- mov al,[xx+bp-1]
- mov ah,[xx+bp]
- cmp al,ah
- jng .a
-
- mov [xx+bp-1],ah
- mov [xx+bp],al
- mov al,[x+bp-1]
- mov ah,[x+bp]
- mov [x+bp-1],ah
- mov [x+bp],al
-
- mov cx,[nbr]
- .a
-
- loop .ici
-
- ret
- ;*****************************************
- solurecursive :
- inc bp
- cmp bp,[nbr]
- jnz .a
- mov byte[good],1
- ret
- .a
- mov bh,0
- mov bl,[x+bp]
-
- call calcino
- mov al,'1'
-
-
- .j
-
-
- call tst
-
- cmp byte [sol],0
- jz .h
-
- mov byte [cd+bx],al
- push ax
- push bx
- push dx
- push bp
-
- mov byte[good],1
- call solurecursive
-
- pop bp
- pop dx
- pop bx
- pop ax
-
-
-
- cmp byte [good],1
- jz .br
-
- .h
- inc al
- cmp al,'9'+1
- jnz .j
-
- mov byte [cd+bx],'0'
- mov byte [good],0
-
- .br
- ret
-
-
- ;********************************
-
-
-
- calcino
- push ax
- push bx
- mov dx,0
-
- mov ax,bx
- mov bx,9
-
- div bl
-
- mov dl,ah
- mov dh,al
- inc dl
- inc dh
-
-
-
-
-
- pop bx
- pop ax
- ret
-
-
-
- ;********************************************************
- tst
- pusha
- mov byte [sol],1
- call testligne
- call testcol
- call testreg
- popa
- ret
- ;********************************************************
-
- soluiteratif :
- mov bp,0
- .a
- mov bh,0
- mov bl,[x+bp]
- call calcino
- mov al,[cd+bx]
- .b
- inc al
- cmp al,'9'+1
- jz .br
- call tst
- cmp byte[sol],0
- jz .b
- mov [cd+bx],al
- inc bp
- cmp bp,[nbr]
- jnz .r
- mov byte [good],1
- ret
- .r
- jmp .a
- .br
- mov byte[cd+bx],'0'
- dec bp
- cmp bp,-1
- jnz .a
- mov byte [good],0
- ret
-
-
-
- ;***********************************************************************
-
- SEGMENT .text
-
- t80x50: mov ax,03
- int 10h
- mov ax,1112h
- mov bl,30h
- int 10h
- ret
-
- clrscr: pusha
- mov ax,0B800h
- mov es,ax
- cld
- mov di,0
- mov cx,4000
- mov al,' '
- mov ah,0fh ;jaune/bleu
- rep stosw
- popa
- ret
- ;**********************************************
- putaxd: ;affiche AX en decimal (non sign‚)
- pusha
- mov cx,0 ; compteur
- mov bx,10 ; base 10
- divech: mov dx,0 ; pour la division
- div bx ; division en echelle par 10
- push dx ; empiler le reste
- inc cx ; compter les chiffres
- cmp ax,0 ; si pas fini, recommencer
- jne divech
- affich: pop ax ; le chiffre a afficher se trouve dans AL
- add ah,0Eh ; AH=0E pour affichage, AL = code ascii de AL
- add al,48
- int 10h ; affichage
- loop affich ; recommencer jusqu'a la fin
- popa
- ret
-
- ;***********************************
-
-
-
-
-
- ;***************************************************************
- putchar: ; affiche le caractŠre contenu dans AL
- push ax
-
-
- mov ah,0eh
- int 10h
-
- pop ax
- ret
-
-
-
-
- ;*********************************************************
-
- ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- getch:
-
- mov ah,07
-
- int 21h
-
- ret
- ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- gotoxy :
- push ax
- push bx
- mov ah,02h
- mov bh,00
- int 10h
- pop bx
- pop ax
- ret
- ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- gotoxy2 :
- push ax
- push bx
- push dx
- mov al,4
- mul dh
- mov dh,al
- sub dh,1
-
- mov al,4
- mul dl
- mov dl,al
- sub dl,1
-
- mov ah,02h
- mov bh,00
- int 10h
- pop dx
- pop bx
- pop ax
- ret
- ;************************************************************
-
- ;******************************************************************
- adrbx:
- push ax
- mov bl,dh
- mov bh,0
- mov al,9
- mov ah,0
- sub bl,1
-
- mul bl
- mov bl,al
-
-
-
- mov al,dl
- sub al,1
-
-
- add bl,al
-
-
- pop ax
-
-
-
-
- ret
-
- ;******************************************************************
- souris:
- mov ax,0
- int 0x33
- mov ax,1
- int 0x33
- ret
- ;***********************************************************
- cadre2:
- mov al,179
- mov dl,1
- bi:
- add dl,4
- mov cx,35
- mov dh,1
- ba:
- inc dh
- call gotoxy
- call putchar
- loop ba
- cmp dl,32
- jb bi
- ret
- ;*****************************************************************
- cadre3:
- mov al,196
- mov dh,1
- bii:
- add dh,4
- mov cx,35
- mov dl,1
- baa:
- inc dl
- call gotoxy
- call putchar
- loop baa
- cmp dh,32
- jb bii
- ret
- ;********************************************************************
- col:
- mov dh,13
- mov dl,2
- call gotoxy
- mov cx,35
- mov bh,0
- mov al,196
- mov ah,09
- mov bl,5
- int 10h
- add dh,12
- call gotoxy
- int 10h
-
- mov dl,13
-
- mov cx,1
- mov al,179
- g
- mov dh,2
- call gotoxy
- g1:
- int 10h
- inc dh
- call gotoxy
- cmp dh,37
- jnz g1
- add dl,12
- cmp dl,26
- jl g
-
-
-
-
- ret
- ;********************************************************************
- dakhal:
- push ax
-
- sub dh,1
- sub dl,1
- mov bl,dh
- mov bh,0
-
- mov al,9
- mov ah,0
-
-
- mul bl
- mov bl,al
-
-
-
- mov al,dl
-
-
-
- add bl,al
- add dh,1
- add dl,1
-
- pop ax
-
- cmp al,0
- jnz fino
- mov al,'0'
-
- fino: mov byte [cd+bx],al
- ret
-
- ;******************************************************************
- cadre1 :
- mov dh,1
- mov dl,1
- call gotoxy
- mov al,201
- call putchar
- ;//////////////////////////////////////////////////////
- mov cx,35
- mov al,186
- b:
- inc dh
- call gotoxy
- call putchar
- loop b
- ;//////////////////////////////////////////////////////
- inc dh
- call gotoxy
- mov al,200
- call putchar
- ;////////////////////////////////////////////
- mov al,205
- mov cx,35
- d:
- call putchar
- loop d
-
-
- ;////////////////////////////////////////////
-
- mov cx,35
- mov dh,1
- mov dl,2
- call gotoxy
- a:
- call putchar
- loop a
-
- mov al,187
- call putchar
- ;////////////////////////////////////////////
- mov dh,1
- mov dl,37
- mov cx,35
- mov al,186
- c:inc dh
- call gotoxy
- call putchar
- loop c
- inc dh
- mov al,188
- call gotoxy
- call putchar
-
- ret
-
- ;**************************************************************
- nl: ; retour … la ligne
- push ax
- mov ax,0E0Ah ; retour a la ligne
- int 10h
- mov al,13
- int 10h
- pop ax
- ret
-
-
-
-
bits 16
org 0x0100
section .data
ph db 'Taper ENTER ou ESC pour Voir solution $'
ph1 db 'Mountassir Youssef 2IIR3 EMSI','$'
ph3 db 'msavyo1@hotmail.com','$'
ph2 db 'Pas de solution$'
section .bss
yy resb 1
cd resb 81
x resb 81
xx resb 81
sol resb 1
nbr resw 1
good resb 1
[section .text]
mov ax,3
int 10h
mov ax,1112h
mov bl,30h
int 10h
mov ah,1
mov ch,8
mov cl,12
int 10h
;****MOUNTASSIR ---YOUSSEF------2IIR3********
call cadre1
call cadre2
call cadre3
call col
call souris
;**********affichage phrase**************************
mov dl,40
mov dh,10
call gotoxy
mov bx,ph
call puts
mov dl,40
mov dh,13
call gotoxy
mov bx,ph1
call puts
mov dl,40
mov dh,15
call gotoxy
mov bx,ph3
call puts
;**********FIN affichage phrase*************************
mov cx,81
initial:
here:mov bx,cx
mov byte [(bx+cd)-1],'0'
loop here
mov dl,1
mov dh,1
call gotoxy2
click :
call getch
cmp al,13
jnz z1
mov al,27
z1 :cmp al,27
jnz z2
call backo
mov [nbr],bp
mov byte [xx+bp],255
call posa
call tri
mov bp,-1
;call solurecursif
call soluiteratif
cmp byte [good],1
jz afi
mov al,7
call putchar
mov bx,ph2
call clrscr
call puts
call getch
jmp outaa
afi
call afff
outaa :
call outa
z2 :cmp al,0
jnz koko
call direc
jmp click
koko
cmp al,8
jnz too
mov al,0
call dakhal
mov al,0
call putchar
call gotoxy2
jmp click
too:
cmp al,'1'
jl click
cmp al,'9'
jg click
;******************************test col reg lig*******************
call tst
cmp byte [sol],0
jz click
;**************************************
call dakhal
call putchar
call gotoxy2
jmp click
;************************VERIFICATION DU LIMITES DE CURSEUR****************
tet:
cmp dh,0
JG aca
mov dh,9
jmp ddd
aca:
cmp dh,10
jl bbb
mov dh,1
jmp ddd
bbb:
cmp dl,0
jg ccc
mov dl,9
jmp ddd
ccc:
cmp dl,10
jl ddd
mov dl,1
ddd:
call gotoxy2
ret
;*****************FONCTION AFFICHAGE PHRASE************************************
puts:
mov al,[bx]
cmp al,'$'
jz barap
call putchar
inc bx
jmp puts
barap :
ret
;********************************************************
call clrscr
mov dh,0
mov dl,0
call gotoxy
;*************AFFICHAGE MATRICE FINAL******************
afff:
mov dh,-1
mov dl,0
call gotoxy
mov cx, 9
mov bp,0
matr:
add dh,4
mov dl,3
call nl
mov bx,0
la:
mov al,[cd+bp]
call gotoxy
add dl,4
call putchar
inc bp
inc bx
cmp bx,9
jnz la
loop matr
call getch
ret
;***************************************
outa
mov ax, $4C00
int $21
ret
;**********************************
direc
call getch
cmp al,77
jnz aa
add dl,1
jmp dir1e
aa:
cmp al,75
jnz bb
add dl,-1
jmp dir1e
bb:
cmp al,80
jnz cc
add dh,1
jmp dir1e
cc:
cmp al,72
jnz dir1e
add dh,-1
dir1e:
call tet
ret
;**********************************
testligne:
push dx
mov dl,1
ligne :
call adrbx
cmp [cd+bx],al
jnz ti1
mov byte [sol],0
ti1
inc dl
cmp dl,10
jnz ligne
pop dx
ret
;***********************************
testcol:
push dx
mov dh,1
colonnes :
call adrbx
cmp [cd+bx],al
jnz ti2
mov byte [sol],0
ti2
inc dh
cmp dh,10
jnz colonnes
pop dx
ret
;**********************************
;*******************************
testreg:
push dx
push ax
mov ah,0
mov bh,3
mov al,dl
sub al,1
div bh
mul bh
mov dl,al
add dl,1
mov al,dh
sub al,1
div bh
mul bh
mov dh,al
add dh,1
pop ax
mov [yy],dl
mov bp,3
reg:
mov dl,[yy]
mov cx,3
sreg
call adrbx
cmp [cd+bx],al
jnz ti3
mov byte [sol],0
ti3
inc dl
loop sreg
inc dh
dec bp
jnz reg
pop dx
ret
;*********************************
backo:
mov bx,0
mov bp,0
lp
cmp byte [cd+bx],'0'
jnz lpi
mov byte[xx+bp],0
mov [x+bp],bl
inc bp
lpi:
inc bx
cmp bx,81
jnz lp
ret
;*******************************
posa
mov cx,[nbr]
mov bh,0
.ici
mov ax,cx
mov bp,cx
sub bp,1
mov bl,[x+bp]
call calcino
call pos
mov cx,ax
loop .ici
ret
;**************************************
pos
push ax
mov cx,9
.ici
mov al,cl
add al,48
call tst
cmp byte[ sol],0
jz .a
inc byte [xx+bp]
.a
loop .ici
pop ax
ret
;********************************
tri
.deb
mov cx,[nbr]
sub cx,1
.ici
mov bp,cx
mov al,[xx+bp-1]
mov ah,[xx+bp]
cmp al,ah
jng .a
mov [xx+bp-1],ah
mov [xx+bp],al
mov al,[x+bp-1]
mov ah,[x+bp]
mov [x+bp-1],ah
mov [x+bp],al
mov cx,[nbr]
.a
loop .ici
ret
;*****************************************
solurecursive :
inc bp
cmp bp,[nbr]
jnz .a
mov byte[good],1
ret
.a
mov bh,0
mov bl,[x+bp]
call calcino
mov al,'1'
.j
call tst
cmp byte [sol],0
jz .h
mov byte [cd+bx],al
push ax
push bx
push dx
push bp
mov byte[good],1
call solurecursive
pop bp
pop dx
pop bx
pop ax
cmp byte [good],1
jz .br
.h
inc al
cmp al,'9'+1
jnz .j
mov byte [cd+bx],'0'
mov byte [good],0
.br
ret
;********************************
calcino
push ax
push bx
mov dx,0
mov ax,bx
mov bx,9
div bl
mov dl,ah
mov dh,al
inc dl
inc dh
pop bx
pop ax
ret
;********************************************************
tst
pusha
mov byte [sol],1
call testligne
call testcol
call testreg
popa
ret
;********************************************************
soluiteratif :
mov bp,0
.a
mov bh,0
mov bl,[x+bp]
call calcino
mov al,[cd+bx]
.b
inc al
cmp al,'9'+1
jz .br
call tst
cmp byte[sol],0
jz .b
mov [cd+bx],al
inc bp
cmp bp,[nbr]
jnz .r
mov byte [good],1
ret
.r
jmp .a
.br
mov byte[cd+bx],'0'
dec bp
cmp bp,-1
jnz .a
mov byte [good],0
ret
;***********************************************************************
SEGMENT .text
t80x50: mov ax,03
int 10h
mov ax,1112h
mov bl,30h
int 10h
ret
clrscr: pusha
mov ax,0B800h
mov es,ax
cld
mov di,0
mov cx,4000
mov al,' '
mov ah,0fh ;jaune/bleu
rep stosw
popa
ret
;**********************************************
putaxd: ;affiche AX en decimal (non sign‚)
pusha
mov cx,0 ; compteur
mov bx,10 ; base 10
divech: mov dx,0 ; pour la division
div bx ; division en echelle par 10
push dx ; empiler le reste
inc cx ; compter les chiffres
cmp ax,0 ; si pas fini, recommencer
jne divech
affich: pop ax ; le chiffre a afficher se trouve dans AL
add ah,0Eh ; AH=0E pour affichage, AL = code ascii de AL
add al,48
int 10h ; affichage
loop affich ; recommencer jusqu'a la fin
popa
ret
;***********************************
;***************************************************************
putchar: ; affiche le caractŠre contenu dans AL
push ax
mov ah,0eh
int 10h
pop ax
ret
;*********************************************************
;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
getch:
mov ah,07
int 21h
ret
;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gotoxy :
push ax
push bx
mov ah,02h
mov bh,00
int 10h
pop bx
pop ax
ret
;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gotoxy2 :
push ax
push bx
push dx
mov al,4
mul dh
mov dh,al
sub dh,1
mov al,4
mul dl
mov dl,al
sub dl,1
mov ah,02h
mov bh,00
int 10h
pop dx
pop bx
pop ax
ret
;************************************************************
;******************************************************************
adrbx:
push ax
mov bl,dh
mov bh,0
mov al,9
mov ah,0
sub bl,1
mul bl
mov bl,al
mov al,dl
sub al,1
add bl,al
pop ax
ret
;******************************************************************
souris:
mov ax,0
int 0x33
mov ax,1
int 0x33
ret
;***********************************************************
cadre2:
mov al,179
mov dl,1
bi:
add dl,4
mov cx,35
mov dh,1
ba:
inc dh
call gotoxy
call putchar
loop ba
cmp dl,32
jb bi
ret
;*****************************************************************
cadre3:
mov al,196
mov dh,1
bii:
add dh,4
mov cx,35
mov dl,1
baa:
inc dl
call gotoxy
call putchar
loop baa
cmp dh,32
jb bii
ret
;********************************************************************
col:
mov dh,13
mov dl,2
call gotoxy
mov cx,35
mov bh,0
mov al,196
mov ah,09
mov bl,5
int 10h
add dh,12
call gotoxy
int 10h
mov dl,13
mov cx,1
mov al,179
g
mov dh,2
call gotoxy
g1:
int 10h
inc dh
call gotoxy
cmp dh,37
jnz g1
add dl,12
cmp dl,26
jl g
ret
;********************************************************************
dakhal:
push ax
sub dh,1
sub dl,1
mov bl,dh
mov bh,0
mov al,9
mov ah,0
mul bl
mov bl,al
mov al,dl
add bl,al
add dh,1
add dl,1
pop ax
cmp al,0
jnz fino
mov al,'0'
fino: mov byte [cd+bx],al
ret
;******************************************************************
cadre1 :
mov dh,1
mov dl,1
call gotoxy
mov al,201
call putchar
;//////////////////////////////////////////////////////
mov cx,35
mov al,186
b:
inc dh
call gotoxy
call putchar
loop b
;//////////////////////////////////////////////////////
inc dh
call gotoxy
mov al,200
call putchar
;////////////////////////////////////////////
mov al,205
mov cx,35
d:
call putchar
loop d
;////////////////////////////////////////////
mov cx,35
mov dh,1
mov dl,2
call gotoxy
a:
call putchar
loop a
mov al,187
call putchar
;////////////////////////////////////////////
mov dh,1
mov dl,37
mov cx,35
mov al,186
c:inc dh
call gotoxy
call putchar
loop c
inc dh
mov al,188
call gotoxy
call putchar
ret
;**************************************************************
nl: ; retour … la ligne
push ax
mov ax,0E0Ah ; retour a la ligne
int 10h
mov al,13
int 10h
pop ax
ret
Conclusion
juste une autre resolveur mais cette fois avec langage machine
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Historique
- 29 février 2008 00:58:13 :
- juste une clé
Sources de la même categorie
Commentaires
|
CalendriCode
| | | L | M | M | J | V | S | D |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | | | | | |
|
|