+ -
当前位置:首页 → 问答吧 → 如何定位光标

如何定位光标

时间:2010-12-29

来源:互联网

请教一个问题,当我输出完一个8*8的图形符号后,即现在坐标[7][7],我如何将光标移动到[8][0]的位置继续输入?能否给一个例子,不甚感激

作者: caoxulei   发布时间: 2010-12-29

用int 10H的2号功能来定位光标位置。例如:

d:\MASM>debug
-a
1472:0100 mov ah,2
1472:0102 mov cx,1010
1472:0105 mov dx,2020
1472:0108 int 10
1472:010A db 'hello$'
1472:0110 cs:
1472:0111 mov dx,10a
1472:0114 mov ah,9
1472:0116 int 21
1472:0118
-g=100 118


















  hello
AX=0924 BX=0000 CX=1010 DX=010A SP=FFEC BP=0000 SI=0002 DI=0001
DS=1472 ES=1472 SS=1472 CS=1472 IP=0118 NV UP EI PL ZR NA PE NC
1472:0118 E892DE CALL DFAD
-q

d:\MASM>

作者: masmaster   发布时间: 2010-12-29

mov dh,8 ;行号
 mov dl,1 ;列号
 mov bh,0 ;页值
 mov ah,2
 int 10h

作者: leetow2003   发布时间: 2010-12-29

引用 2 楼 leetow2003 的回复:

mov dh,8 ;行号
mov dl,1 ;列号
mov bh,0 ;页值
mov ah,2
int 10h

  我应该先获得目前光标位置的行号和列号吧,这个如何获取?

作者: caoxulei   发布时间: 2010-12-29

引用 3 楼 caoxulei 的回复:
引用 2 楼 leetow2003 的回复:

mov dh,8 ;行号
mov dl,1 ;列号
mov bh,0 ;页值
mov ah,2
int 10h

我应该先获得目前光标位置的行号和列号吧,这个如何获取?

用int 10H的3号功能。

作者: masmaster   发布时间: 2010-12-29

引用 3 楼 caoxulei 的回复:

引用 2 楼 leetow2003 的回复:

mov dh,8 ;行号
mov dl,1 ;列号
mov bh,0 ;页值
mov ah,2
int 10h

我应该先获得目前光标位置的行号和列号吧,这个如何获取?

我试了下你说的方法但是发现,原来输出的字会不显示,只有设置好光标以后的字。
Assembly code
MOV       DX,OFFSET INFO_1        ;程序开始显示的信息
              MOV       AH,9H
              INT       21H
              MOV       AH,03H
              MOV       BH, 0
              INT       10H
              ADD       DH,2
              ADD       DL,2
              MOV       AH,02H
              INT       10H
              MOV       DX,OFFSET INFO_0        ;显示信息,提示输入
              MOV       AH,9H
              INT       21H

例如这个,只会显示INFO_O的内容而原来输出的 INFO_1则没有了。这个是什么原因啊

作者: caoxulei   发布时间: 2010-12-29

引用 4 楼 masmaster 的回复:

引用 3 楼 caoxulei 的回复:
引用 2 楼 leetow2003 的回复:

mov dh,8 ;行号
mov dl,1 ;列号
mov bh,0 ;页值
mov ah,2
int 10h

我应该先获得目前光标位置的行号和列号吧,这个如何获取?

用int 10H的3号功能。

我发现设置好光标以后输出的内容会将前面的内容擦除。例如下面这个我刚测试的程序Assembly code

MOV       DX,OFFSET INFO_1        ;程序开始显示的信息
              MOV       AH,9H
              INT       21H
              MOV       AH,03H
              MOV       BH, 0
              INT       10H
              ADD       DH,2
              ADD       DL,2
              MOV       AH,02H
              INT       10H
              MOV       DX,OFFSET INFO_0        ;显示信息,提示输入
              MOV       AH,9H
              INT       21H

只有INFO_O的内容被显示出来了

作者: caoxulei   发布时间: 2010-12-29

百度 INT 10H 

 http://wenku.baidu.com/view/5352698102d276a200292e64.html

 

作者: znxllyuan   发布时间: 2010-12-29

热门下载

更多