【发布时间】:2021-05-06 08:21:51
【问题描述】:
我有一个 getchar 函数应该这样做:
它应该输出什么:
33
它实际输出的内容:
3
这是我目前的尝试:
char db 0
charcolor db 0
pos_x_2 db 0
pos_y_2 db 0
_getchar:
MOV [pos_x_2], DL
MOV [pos_y_2], DH
MOV BH, 0
MOV AH, 03h
INT 0x10
MOV [pos_x], DL
MOV [pos_y], DH
MOV DL, pos_x_2
MOV DH, pos_y_2
MOV AH, 02h
INT 0x10
MOV BH, 0
MOV AH, 08h
INT 0x10
MOV [char], AL
MOV [charcolor], AH
RET
【问题讨论】:
-
将 NASM 与 16 位代码一起使用。
-
此代码不输出任何内容。它在指定位置读取当前字符/颜色。查看 definitions 了解各种 int 10h 函数。查看您输入的值 ah 以确定您调用的是哪些值。
-
主代码应该输出两个字符。它只是文件的一个 sn-p。
-
你为什么要发布不显示问题的代码?如果您不向我们显示当前代码,我们无法告诉您为什么当前代码显示“3”而不是“33”...