《汇编语言》实验10.3,不完美版,待改进
org 0100h
start@:
mov ax,12666
s1:
mov dx,0
mov bx,10
div bx
push dx
mov cx,ax
jcxz s2
jmp s1
s2:
mov cx,5
mov bx,dataStart@
s3:
pop ax
add ax,30h
mov [bx],ax
add bx,1
loop s3
call show_str
jmp $
mov ax,4c00h
int 21h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
show_str:
mov dh,15 ;显示在屏幕的行数
mov dl,40 ;显示在屏幕的列数
mov cl,2 ;显示在屏幕的颜色
mov ax,cs
mov ds,ax
mov si,0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;屏显子程序,接收三个参数
mov al,160
mov bl,dh
mul bl
add dl,dl
mov bl,dl
mov bh,0
add ax,bx
mov bx,dataStart@
add si,ax
mov dh,cl
mov cx,dataEnd@-dataStart@
s@:
mov dl,[bx]
mov ax,0b800h
mov ds,ax
mov [ds:si],dx
mov ax,cs
mov ds,ax
inc bx
add si,2
loop s@
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
dataStart@:
db 100 dup (' ')
dataEnd@:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
stackEnd@:
db 100 dup (0) ;堆栈区初始化
stackStart@:
阅读(1083) | 评论(0) | 转发(0) |