编译错误,求解,急
assume cs:codesgdatasg segment
db 16 dup(0)
db 'Hello',0
datasg ends
stacksg segment
db 32 dup(0)
stacksg ends
codesg segment
start:
;用户给出参数:行、列、颜色
mov dh,4
mov dl,3
mov cl,01000011B
;设置栈段
mov ax,stacksg
mov ss,ax
mov sp,32
;设置数据段
mov ax,datasg
mov ds,ax
call showstr
mov ax,4c00H
int 21H
showstr:
;说明:将字母转换为大写,字符串遇到0结束
;参数:
;结果:
;子程序中要用到的寄存器入栈
push ax
push bx
push cx
push si
push di
;参数放入内存,解放寄存器给子程序使用
mov ds:,dh
mov ds:,dl
mov ds:,cl
;指定显存位置,并初始化参数
mov ax,0b800H
mov es,ax
add byte ptr ds:,2 ;0.1行不显示
;清空屏幕中用户给定的行
mov al,byte ptr ds:
mov ah,0a0H
mul ah
mov bx,ax
mov si,0
mov cx,160
z1: mov byte ptr es:,0
inc si
loop z1
mov si,0
mov di,0
mov cx,0
z2: mov cl,ds:
jcxz z0 ;判断字符串结束标志0
mov byte ptr es:,cl
mov cl,ds:
mov byte ptr es:,cl ;设置用户给定的颜色
inc si
add di,2
jmp z2
z0: pop di
pop si
pop cx
pop bx
pop ax
ret
codesg ends
end start 编译器就提示第一行有错误??真真的搞不懂,急待高手回复…… 全选,复制到另一个记事本里,保存再编译,竟然可以了,这是什么问题导致的,有大神能解吗??
页:
[1]