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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214
|
;---------------------------------
; PROJET ASSEMBLEUR
;---------------------------------
cseg segment
assume cs:cseg, ds:cseg, es:cseg
org 100h
debut:
;*******mode video******************
mov ah,0
mov al,13h
int 10h
;*******couleur ecran***************
; mov ah,0bh
; mov bh,0
; mov bl,10
; int 10h
;*******image***********************
mov dx,offset image
call affiche_image
main:
;******position sur ecran***********
mov ah,2
mov dh,24
mov dl,0
int 10h
;***********************************
mov ah,04h
int 1ah
mov siecle,ch
mov annee,cl
mov mois,dh
mov jour,dl
mov cl,4
mov al,jour
mov ah,0
shl ax,cl
shr al,cl
or ax,3030h
xchg al,ah
mov word ptr date,ax
mov cl,4
mov al,mois
mov ah,0
shl ax,cl
shr al,cl
or ax,3030h
xchg al,ah
mov word ptr date+3,ax
mov cl,4
mov al,siecle
mov ah,0
shl ax,cl
shr al,cl
or ax,3030h
xchg al,ah
mov word ptr date+6,ax
mov cl,4
mov al,annee
mov ah,0
shl ax,cl
shr al,cl
or ax,3030h
xchg al,ah
mov word ptr date+8,ax
mov ah,09h
mov dx,offset date
int 21h
;*******************************
;******position sur ecran***********
mov ah,2
mov dh,24
mov dl,30
int 10h
mov AH,2
int 1Ah
mov heure,ch
mov minute,cl
mov seconde,dh
mov cl,4
mov al,heure
mov ah,0
shl ax,cl
shr al,cl
or ax,3030h
xchg al,ah
mov word ptr buf_aff,ax
mov cl,4
mov al,minute
mov ah,0
shl ax,cl
shr al,cl
or ax,3030h
xchg al,ah
mov word ptr buf_aff+3,ax
mov cl,4
mov al,seconde
mov ah,0
shl ax,cl
shr al,cl
or ax,3030h
xchg al,ah
mov word ptr buf_aff+6,ax
mov ah,09h
mov dx,offset buf_aff
int 21h
mov ah,2h
int 16h
and al,1
cmp al,0
jz main
mov AH,4Ch
int 21h
;---------------------------
affiche_image proc
;---------------------------
mov dx,offset image
mov ah,3dh
mov al,00h
int 21h
mov handleimage,ax
mov ax,4200h
xor cx,cx
mov dx,54
mov bx,handleimage
int 21h
mov ax,3f00h
lea dx,palette
mov cx,1024
int 21h
mov al,00
mov dx,03c8h
out dx,al
inc dx
xor bx,bx
mov cl,2
loop_palette:
mov al,palette[bx+2]
sar al,cl
out dx,al
mov al,palette[bx+1]
sar al,cl
out dx,al
mov al,palette[bx]
sar al,cl
out dx,al
add bx,4
cmp bx,1024
jne loop_palette
mov bx,handleimage
mov ax,0a000h
mov ds,ax
mov cx,320
mov dx,63680
copie:
mov ah,3Fh
int 21H
cmp dx,0
jz fin_copie
sub dx,320
jmp copie
fin_copie:
mov ah,3eh
mov bx,handleimage
int 21h
ret
affiche_image endp
siecle db ?
annee db ?
mois db ?
jour db ?
heure db ?
minute db ?
seconde db ?
image db "image.bmp",0h
handleimage dw "hh"
palette db 1024 dup("p")
date db "//////////",24h
buf_aff db "::::::::",24h
cseg ends
end debut |
Partager