bmp.asm 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. .286
  2. .model small
  3. .code
  4. ORG 100h
  5. start:
  6. call ggg
  7. db 'cool3.bmp',0
  8. ggg: pop dx
  9. mov ax, 3d00h
  10. int 21h
  11. mov bx, ax
  12. mov ah, 3fh
  13. mov cx, bmphdr_len
  14. mov dx, offset cs:bmphdr
  15. int 21h
  16. mov ah, 3fh
  17. mov cx, bmpinfohdr_len
  18. mov dx, offset cs:bmpinfohdr
  19. int 21h
  20. mov ax, 13h
  21. int 10h
  22. mov cx, 256
  23. loadpal:
  24. push cx
  25. mov ah, 3fh
  26. mov dx, offset cs:colortable
  27. mov cx, clrtab_len
  28. int 21h
  29. mov dx, 3c8h
  30. mov al, col
  31. out dx, al
  32. inc col
  33. mov dx, 3c9h
  34. mov al, rgbRed
  35. shr al, 2
  36. out dx, al
  37. mov al, rgbGreen
  38. shr al, 2
  39. out dx, al
  40. mov al, rgbBlue
  41. shr al, 2
  42. out dx, al
  43. pop cx
  44. loop loadpal
  45. mov cx, 200
  46. mov ax, 0a000h
  47. mov ds, ax
  48. mov di, 320*199
  49. loadimage:
  50. push cx
  51. mov ah, 3fh
  52. mov cx, 320
  53. mov dx, di
  54. int 21h
  55. sub di, 320
  56. pop cx
  57. loop loadimage
  58. mov ah, 3eh
  59. int 21h
  60. mov ah, 08h
  61. int 21h
  62. mov ax,3
  63. int 10h
  64. int 20h
  65. ; End of main proc
  66. ;-------------------------------
  67. ;-------------------
  68. ; Bitmap Header!!!
  69. ;-------------------
  70. bmphdr:
  71. bfType dw 0 ; //⨯ ä ©«  (¤«ï ¡¨â®¢®£® ®¡à §  - BM)
  72. bfSize dd 0 ; //à §¬¥à ä ©«  ¢ dword
  73. dw 0,0
  74. bfOffbits dd 0 ; //ᬥ饭¨¥ ¤ ­­ëå ¡¨â®¢®£® ®¡à §  ®â ­ ç «  ä ©« 
  75. bmphdr_len EQU $-bfType
  76. ;-------------------
  77. ; Bitmap Info Header!!!
  78. ;-------------------
  79. bmpinfohdr:
  80. biSize dd 0 ; //ç¨á«® ¡ ©â, § ­¨¬ ¥¬ëå áâàãªâãன
  81. biWidth dd 0 ; //è¨à¨­  ¡¨â®¢®£® ®¡à §  ¢ ¯¨ªá¥« å
  82. biHeight dd 0 ; //¢ëá®â  ¡¨â®¢®£® ®¡à §  ¢ ¯¨ªá¥« å
  83. dw 0 ; //ç¨á«® ¡¨â®¢ëå ¯«®áª®á⥩ ãáâனá⢠
  84. biBitCount dw 0 ; //ç¨á«® ¡¨â®¢ ­  ¯¨ªá¥«ì
  85. dd 0 ; biCompression; //⨯ ᦠâ¨ï
  86. biSizeImage dd 0 ; //à §¬¥à ª à⨭ª¨ ¢ ¡ ©â å
  87. dd 0,0 ; biXPelsPerMeter;//£®à¨§®­â «ì­®¥ à §à¥è¥­¨¥ ãáâனá⢠,
  88. ; biYPelPerMeter; //¢¥à⨪ «ì­®¥ à §à¥è¥­¨¥ ãáâனá⢠,
  89. dd 0 ; biClrUsed; //ç¨á«® ¨á¯®«ì§ã¥¬ëå æ¢¥â®¢
  90. dd 0 ; biClrImportant; //ç¨á«® "¢ ¦­ëå" 梥⮢
  91. bmpinfohdr_len EQU $-biSize
  92. ;-------------------
  93. ; Color table
  94. ;-------------------
  95. colortable:
  96. rgbBlue db 0; //¨­â¥­á¨¢­®áâì ªà á­®£®
  97. rgbGreen db 0; //¨­â¥­á¨¢­®áâì §¥«¥­®£®
  98. rgbRed db 0; //¨­â¥­á¨¢­®áâì £®«ã¡®£®
  99. db 0; //­¥ ¨á¯®«ì§ã¥âáï
  100. clrtab_len EQU $-rgbBlue
  101. col db 0
  102. end start