首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FASM引导加载程序输入

FASM引导加载程序输入
EN

Stack Overflow用户
提问于 2014-04-24 16:12:03
回答 1查看 1.3K关注 0票数 1

我开始在FASM中从头开始创建一个引导加载程序。我只是做了一个基本的输入。但我不知道该怎么做。

这是我的代码:

代码语言:javascript
复制
start:
mov ax, 07C0h 
add ax, 288     
mov ss, ax 
mov sp, 4096 
mov ax, 07C0h 
mov ds, ax 
mov si, text_string 
call print_string
jmp read  ; infinite loop of reading!
text_string db '<HammerOS> : Booted up!', 13, 10, 0

read:
mov ah,0h   ;get character from keyboard
int 16h     ;and store it in AL
mov ah,0eh  ;Display a character in AL
int 10h     ;aka, echo it

jmp read

have_read_txt:
mov si, AL
call print_string

print_string:     
mov ah, 0Eh 

.repeat: 
lodsb     
cmp al, 0 
je .done 
int 10h  
jmp .repeat 

.done: 
ret 


times 510-($-$$) db 0 
dw 0xAA55

它的作用是接受控制台上的输入,但当我按enter键时,我想检查输入的内容,并在此基础上做一些事情。

另外,我希望光标移动到下一行。现在,如果我按enter键,文本将写在同一行上。

EN

回答 1

Stack Overflow用户

发布于 2014-04-24 16:40:33

在获取字符并将其写入屏幕的位置,您还需要将字符存储在某个内存缓冲区中。

当你通过比较AL和'enter‘键的代码来检测到'enter’键时,你需要分析你的缓冲区并做一些事情。% List of ascii codes here;可能有用。

如果你想移动你的光标,看看int10h(你已经在使用了)描述:BIOS interrupt call

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23263360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档