汇编语言中怎么控制光标位置,比如我输出一堆字符组成一个框子,怎么控制光标在其中输出字符啊。
3个回答
展开全部
汇编语言的IO控制与操作系统和BIOS有关。
对于X86通常用BIOS的INT16控制键盘,INT10控制屏幕,或者用DOS调用,但一般较难控制光标位置。
建议找一本X86的BIOS详解看看。比如:清华大学 PC软硬件技术资料大全,里面有关于DOS INT21H,显示服务INT10H,键盘服务INT16H,磁盘服务INT13H。
也可以用INT10H控制光标,用INT21H的部分键盘和屏幕输出服务操作相结合的方式。
INT10H,AH=01置光标类型
INT10H,AH=02置光标位置
INT21H,AH=01读键盘和回送(回显)
INT21H,AH=02显示字符(自动在光标处,上同)
INT21H,AH=08读键盘无回送
INT21H,AH=09显示字符串(以$结尾,与C语言的\0结尾不同)
INT21H,AH=0B检查键盘状态
对于X86通常用BIOS的INT16控制键盘,INT10控制屏幕,或者用DOS调用,但一般较难控制光标位置。
建议找一本X86的BIOS详解看看。比如:清华大学 PC软硬件技术资料大全,里面有关于DOS INT21H,显示服务INT10H,键盘服务INT16H,磁盘服务INT13H。
也可以用INT10H控制光标,用INT21H的部分键盘和屏幕输出服务操作相结合的方式。
INT10H,AH=01置光标类型
INT10H,AH=02置光标位置
INT21H,AH=01读键盘和回送(回显)
INT21H,AH=02显示字符(自动在光标处,上同)
INT21H,AH=08读键盘无回送
INT21H,AH=09显示字符串(以$结尾,与C语言的\0结尾不同)
INT21H,AH=0B检查键盘状态
展开全部
可以BOIS中断调用INT 10H来解决,如:
MOV AH, 2 ;设定光标位置.
INC DX
INT 10H
;--------------------------
PUSH BX
MOV AH, 9 ;显示字符.
; ;AL为字符的ASCII
; MOV BL, 1EH ;蓝色背景、黄色字符.
MOV BL, 2CH ; 绿底红色的字符.
MOV CX, 1 ;显示一个字符.
INT 10H ;显示吧.
可以参考:
http://zhidao.baidu.com/question/269080580.html
MOV AH, 2 ;设定光标位置.
INC DX
INT 10H
;--------------------------
PUSH BX
MOV AH, 9 ;显示字符.
; ;AL为字符的ASCII
; MOV BL, 1EH ;蓝色背景、黄色字符.
MOV BL, 2CH ; 绿底红色的字符.
MOV CX, 1 ;显示一个字符.
INT 10H ;显示吧.
可以参考:
http://zhidao.baidu.com/question/269080580.html
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接写b800显存空间,计算行和列
更多追问追答
追问
lea dx,msg
mov ah,9
int 21h
用这个输出的字符,在哪写b800啊
追答
mov ax,0b800h
mov es,ax
mov es:[16*160+40*3],"111"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询