写一个程序在屏幕上循环显示26个大写字母,每行显示10个,逐行变换显示颜色。 按alt+f1键终止程序。
答:
;----------------------------------------------------;
assume cs:code,ds:data
data segment
divsor dw 10
data ends
code segment
start:
mov ax,data
mov ds,ax
a:
mov ah,3
int 10h
mov ah,2
int 10h
mov al,41h
mov bl,1
b:
push ax
mov ah,2
int 16h
test al,00001000b
jnz exit
pop ax
mov ah,9
mov cx,1
int 10h
call delay
inc dl
inc bl
mov ah,2
int 10h
push dx
push ax
mov al,dl
sub ah,ah
xor dx,dx
div divsor
cmp dx,0
jnz jxa
call crlf
pop ax
pop dx
inc dh
mov ah,2
mov dl,0
int 10h
jmp jxb
jxa:
pop ax
pop dx
jxb:
inc al
cmp al,5ah
ja a
jmp b
;
exit:
mov ah,1
int 16h
jz a
mov ah,0
int 16h
cmp ax,3b00h
jnz a
over: mov ah,4ch
int 21h
;
crlf proc
mov ah,2
mov dl,0dh
int 21h
mov dl,0ah
int 21h
ret
crlf endp
;
delay proc uses ax dx
mov dx,1000h
mov ax,0
de:
sub ax,1
sbb dx,0
cmp ax,0
jne de
cmp dx,0
jne de
ret
delay endp
;
code ends
end start
;----------------------------------------------------;
- [somniumchase] 我一运行就说没有数字 01/01 11:44
- [游客] 为什么啊 08/07 15:36
- [游客] 如果想快一些 就改下面这里 dx值改成1H delay: push ax 04/19 02:53
- [lshhjx] 注释在程序中很重要,楼主不知道吗? 12/08 13:40
- [biaggi] 看不明白,在下還須學習 11/06 08:11
- [游客] 我运行的时候直接显示Unkown filename跳出了- -请问怎么改 06/16 21:44
- [游客] 勿庸置疑,注释是好习惯。与人方便自己方便。 04/12 10:33
- [游客] 老实说,看着真心累呀! 04/07 18:37
- [游客] 很无语,初学者就多看书,不要动不动要别人注释,基础打好了,再自己注释,这样比别人帮你注释好得多 12/17 19:43
- [dgkepu] 初学者:不懂,希望有多点注释带着学习学习! 12/07 20:52
- [游客] windows 7是一个64Bit操作系统,它不兼容DOS,无法识别16Bit系统。重装系统wind 02/28 21:05
- [游客] windows 7是一个64Bit操作系统,它不兼容DOS,无法识别16Bit系统。重装系统wind 02/28 21:05
- [466987333] 你好,高手,我想请教一个问题。 我用的是win7操作系统,32位的,里面没有找masm目录,是不是 12/12 17:30
- [lanfioncc] 那个太高级了。。。我还有点看不懂。。不过谢谢!!! 11/27 11:23
- [yc2010] 实验16中的 table: dw sub1,sub2,sub3,sub4 可不可以改成呢? 09/11 09:08
- [yc2010] mov bl,ah mov bh,0 add bx,bx ----------->这里为 09/07 21:03
- [yc2010] 为什么要add bx,bx呢? 09/07 20:55
- [yc2010] 那是不是像table[bx],ds[bx]....等(内存单元)都是表示一个字节呢? 09/06 21:10
- [masmaster] 杨季文的《80X86汇编语言程序设计教程》 09/01 12:52
- [游客] to masmaster shl左移4位,那al传进来的4,5,6位背景色不就没了. 为什 09/01 11:00