PDA

View Full Version : سوال: پیاده سازی یک جدول



hosein21
سه شنبه 22 فروردین 1391, 17:35 عصر
سلام چطور می تونیم
طراحی یک جدول داشته باشیم که بتوان ان را رنگ کنیم
یک جدول رنگی پیاده سازی کنیم؟:لبخندساده:

xman_1365_x
چهارشنبه 23 فروردین 1391, 22:48 عصر
دسترسی مستقیم و غیر مستقیم که ساده ترین روش کافیه یک table ایجاد کنید و با یک حلقه آن را با کد غیر مستقیم که نوشتم نمایش بدین



name "hi-world"

; this example prints out "hello world!"
; by writing directly to video memory.
; in vga memory: first byte is ascii character, byte that follows is character attribute.
; if you change the second byte, you can change the color of
; the character even after it is printed.
; character attribute is 8 bit value,
; high 4 bits set background color and low 4 bits set foreground color.

; hex bin color
;
; 0 0000 black
; 1 0001 blue
; 2 0010 green
; 3 0011 cyan
; 4 0100 red
; 5 0101 magenta
; 6 0110 brown
; 7 0111 light gray
; 8 1000 dark gray
; 9 1001 light blue
; a 1010 light green
; b 1011 light cyan
; c 1100 light red
; d 1101 light magenta
; e 1110 yellow
; f 1111 white



org 100h

; set video mode
mov ax, 3 ; text mode 80x25, 16 colors, 8 pages (ah=0, al=3)
int 10h ; do it!

; cancel blinking and enable all 16 colors:
mov ax, 1003h
mov bx, 0
int 10h


; set segment register:
mov ax, 0b800h
mov ds, ax

; print "hello world"
; first byte is ascii code, second byte is color code.

mov [02h], 'H'

mov [04h], 'e'

mov [06h], 'l'

mov [08h], 'l'

mov [0ah], 'o'

mov [0ch], ','

mov [0eh], 'W'

mov [10h], 'o'

mov [12h], 'r'

mov [14h], 'l'

mov [16h], 'd'

mov [18h], '!'




; color all characters:
mov cx, 12 ; number of characters.
mov di, 03h ; start from byte after 'h'

c: mov [di], 11101100b ; light red(1100) on yellow(1110)
add di, 2 ; skip over next ascii code in vga memory.
loop c

; wait for any key press:
mov ah, 0
int 16h

ret


غیر مستقیم:


;HEX BIN COLOR
;
;0 0000 black
;1 0001 blue
;2 0010 green
;3 0011 cyan
;4 0100 red
;5 0101 magenta
;6 0110 brown
;7 0111 light gray
;8 1000 dark gray
;9 1001 light blue
;A 1010 light green
;B 1011 light cyan
;C 1100 light red
;D 1101 light magenta
;E 1110 yellow
;F 1111 white

org 100h
;INT 10h / AH = 09h - write character and attribute at cursor position.
mov ah,09h
mov al,'A' ;AL = character to display.
mov bh,0 ;BH = page number.
mov bl,0010B ;BL = attribute.
mov cx,2 ;CX = number of times to write character.
int 10h
ret

end