|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如题,在emu8086的例题中都是org 100h,没有用我们在甲鱼大大视频中学的start:和end start语句。看了汇编金手指里面的解说也还是没搞懂,求高手指点迷津!!!- 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
复制代码
该贴已经同步到 风剑河的微博 |
|