如何解决与屏幕上的其他元素一起打印
我正在 TASM MS-DOS 中创建一个注册页面。我创建了一个带有按钮的导航栏来导航到登录页面。我现在试图在屏幕上打印“用户名:”并让用户输入他的用户名,但只要导航栏在屏幕上,它就不起作用。这是我的代码:
SignUpMessage db " Sign Up$"
userName db 12 dup(?)
proc AddBreakLines
mov si,0
mov cx,5
BreakLineLoop:
call printNewLine
inc si
loop BreakLineLoop
ret
endp AddBreakLines
proc Addspaces
mov si,54
mov dx,offset space
SpaceLoop:
call printStr
inc si
loop SpaceLoop
ret
endp Addspaces
proc SignUpPage
mov ah,0 ; set display mode function.
mov al,13h ; mode 13h = 320x200 pixels,256 colors.
int 10h ; set it!
mov al,0Fh
mov cx,-1 ;col
mov dx,-1 ;row
mov ah,0ch ; put pixel
signUpTopBar:
inc cx
int 10h
cmp cx,640
jne signUpTopBar
mov cx,10 ; reset to start of col
inc dx ;next row
cmp dx,30
jne signUpTopBar
mov al,0h
mov cx,0 ;col
mov dx,5 ;row
mov ah,0ch ; put pixel
loginButton:
inc cx
int 10h
cmp cx,60
jne loginButton
mov cx,0 ; reset to start of col
inc dx ;next row
cmp dx,30
jne loginButton
call printNewLine
call printNewLine
mov dx,offset LoginMessage
mov ah,09h
int 21h
mov ax,0h
int 33h
mov ax,1h
int 33h
pressLogin:
mov ax,3h
int 33h
cmp bx,01h
jne pressLogin
shr cx,1
sub dx,2
cmp cx,60
ja pressLogin
cmp dx,5
jb pressLogin
cmp dx,30
ja pressLogin
mov si,200
BREAKLINE_SIGNUP:
call printNewLine
inc si
loop BREAKLINE_SIGNUP
call LoginPage
mov dx,offset userName
mov bx,dx
mov [byte ptr bx],9
mov ah,02h
int 21h
ret
endp SignUpPage
proc LoginPage
mov ah,0ch ; put pixel
loginTopBar:
inc cx
int 10h
cmp cx,640
jne loginTopBar
mov cx,30
jne loginTopBar
mov al,0ch ; put pixel
signUpButton:
inc cx
int 10h
cmp cx,70
jne signUpButton
mov cx,30
jne signUpButton
call printNewLine
call printNewLine
mov dx,offset SignUpMessage
mov ah,1h
int 33h
pressSignUp:
mov ax,01h
jne pressSignUp
shr cx,60
ja pressSignUp
cmp dx,5
jb pressSignUp
cmp dx,30
ja pressSignUp
mov si,200
call SignUpPage
ret
endp LoginPage
函数“printNewLine”是一个从库Assembly-Library打印新行的过程
当我尝试将用于打印消息的代码放在导航栏之前时,它会打印橙色线条和线条。有时,它会打印许多紫色线条。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。