Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 从光标读取字符_Assembly - Fatal编程技术网

Assembly 从光标读取字符

Assembly 从光标读取字符,assembly,Assembly,我正在汇编一个视频应用程序。我使用此代码进入视频模式 mov ah,0 mov al,13h int 10h 然后我用打印来写(因为我用的是emu8086) 然后我试着读取dh中的字符,1 dl,1应该是矩阵中的字符 与 但是我得到的是al=00在sub-al之前,'0'和al=D0h在这行之后,它应该是4或5,这取决于矩阵 我做错了什么?或者我不能在这个视频模式下获取字符吗?那么,您似乎正在选择模式13h,我认为是320x200x8bpp?BIOS getchar例程仅在文本模式

我正在汇编一个视频应用程序。我使用此代码进入视频模式

mov ah,0      
mov al,13h
int 10h
然后我用打印来写(因为我用的是emu8086)

然后我试着读取dh中的字符,1 dl,1应该是矩阵中的字符 与

但是我得到的是
al=00
sub-al之前,'0'
al=D0h
在这行之后,它应该是4或5,这取决于矩阵


我做错了什么?或者我不能在这个视频模式下获取字符吗?

那么,您似乎正在选择模式13h,我认为是320x200x8bpp?BIOS getchar例程仅在文本模式下运行。它们不包含将像素从图形模式映射回字符的逻辑。你必须自己写。

什么处理器?你在使用操作系统吗?@RedX操作系统声称使用emu8086。这说明了一切@user2934142绕过BIOS并使用自定义视频驱动程序如何?默认情况下,视频内存从
0B8000h
开始。为80x25文本模式编写驱动程序非常简单。还请注意,从屏幕(这是一个输出设备)读取字符实际上很少有意义。您可以通过将字符存储在数组中来跟踪您自己写入屏幕的字符。我不知道13h模式下的文本分辨率是什么样的,但即使字符是8x8像素,也只需要跟踪1000字节(如果您还需要每个字符的颜色,可能需要加倍)。文本模式下的屏幕内存从0B8000h开始,但13h模式(图形)从0a000h开始<代码>[bp]默认为
[ss:bp]
。我不知道这是否是一个“问题”。。。
mov ah,02h
mov dh,1
mov dl,1 
int 10h  
mov ax,0h
mov ax,[bp]
mov ah,0 
call print_num
mov ah,02h
mov dh,1 
mov dl,1
int 10h 

mov ah,08h
int 10h
sub al,'0'