From 84a816919f1c0c58df9cd2eee41e86ccaab710cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Hord=C3=A9?= Date: Mon, 5 Dec 2005 08:02:33 +0000 Subject: [PATCH] fix: correction de bogue et optimisation des fonctions --- lib/bmp.asm | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/lib/bmp.asm b/lib/bmp.asm index f1e9be7..114b1ab 100644 --- a/lib/bmp.asm +++ b/lib/bmp.asm @@ -28,15 +28,22 @@ showbmp PROC FAR ARG pointer:word, x:word, y:word=taille push bp mov bp,sp - push ax bx cx si di + push ax bx cx dx si di mov si,[pointer] cmp word ptr [si+BMP_file.BMP_FileType],"MB" jne @@errorshowing - mov di,si - add di,436h + mov edi,[si+BMP_BitMapOffset] + add di,si mov ah,8 - xor bx,bx - mov cx,[si+offset BMP_File.BMP_height] + xor ebx,ebx + mov ecx,[si+offset BMP_File.BMP_height] + mov edx,[si+offset BMP_File.BMP_width] + and dx,11111100b + cmp edx,[si+offset BMP_File.BMP_width] + jae @@noadjust + add dx,4 +@@noadjust: + sub dx,[si+offset BMP_File.BMP_width] @@bouclette: mov al,[di] push bx cx @@ -46,14 +53,15 @@ showbmp PROC FAR pop cx bx inc bx inc di - cmp bx,[si+offset BMP_File.BMP_width] + cmp ebx,[si+offset BMP_File.BMP_width] jb @@bouclette xor bx,bx + add di,dx dec cx cmp cx,0 jne @@bouclette clc - pop di si cx bx ax + pop di si dx cx bx ax pop bp retf taille @@ -63,8 +71,6 @@ showbmp PROC FAR pop bp retf taille -xc dw 0 -yc dw 0 showbmp ENDP