|
发表于 2012-12-13 21:05:19
|
显示全部楼层
- assume cs:code
- stack segment
- db 128 dup (0)
- stack ends
- code segment
- start:
- mov ax,stack
- mov ss,ax ;mov es,ax
- mov ax,0b800h ;这个是显存的段地址,你懂的!
- mov di,160*12+20*2
- mov es,ax
- mov ah,'a'
- mov al,02h ;加了个颜色上
- s: mov es:[di],ah ;加上上面的段地址定义,就可以显示了
- mov es:[di+1],al
- call delay
- inc ah
- add di,2 ;将a到z26个字母全部显示出来
- cmp ah, 'z'
- jna s
- mov ax,4c00h
- int 21h
- delay: push ax
- push dx
- mov dx,1000h
- mov ax,0
- s1: sub ax,1
- sbb dx,0
- cmp ax,0
- jne s1
- cmp dx,0
- jne s1
- pop dx
- pop ax
- ret
- code ends
- end start ;以上,是我根据楼主的代码改的,你原来代码功参是在显存的同个字节位上依次显示a 到 z ,我改成将a 到 z 全部显示出来。这个例子我没有看到过,我现在才学到13章int 指令。共同学习,大牛勿喷!
复制代码
|
|