打印签到装配 [英] Print sign in assembly

查看:73
本文介绍了打印签到装配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个操作系统。我为此在程序集中创建了一个打印功能。当我尝试用这个打印'----'时。这是行不通的。我的代码可以在这个网址上找到:主人的ThunderEagle / printf.asm·Sansoft500 / ThunderEagle·GitHub [ ^ ] < br $> b $ b

请帮我解决



我试过的:



以前显示的网址是唯一但我使用的网址



mov al,' - '

int 10h

int 10h

int 10h



它有效。我如何在我的功能中使用它?



[由Jochen Arndt编辑:从GitHub插入的代码]

I am working on an Operating System. I create a print function in assembly for this. When i try to print '----' with this. it does not work. My code is available on this url: ThunderEagle/printf.asm at master · Sansoft500/ThunderEagle · GitHub[^]

please help me to solve

What I have tried:

The url is shown before is the only but when i use

mov al,'-'
int 10h
int 10h
int 10h

it works. how i use this with my function?


printf:
	mov ah,0x0e
	mov bh,0x00
	mov bl,0x07
	next:
		mov al,[si]
		or al,al
		jz done
		int 0x10
		inc si
		jmp next
	done:
		ret




推荐答案

要使用BIOS中断10h打印字符,首先必须在AH中设置该功能...

To print a character using BIOS interrupt 10h, you first have to set the function in AH...
mov ah, 0x0e
mov al, '-'
int 0x10



如果您希望我们检查您的代码,请将其粘贴到您的代码中问题而不是添加链接...


If you wish us to examine your code, please paste it in to your question instead of adding a link...


来自GitHub网址的代码:

Code from the GitHub URL:
printf:
	mov ah,0x0e
	mov bh,0x00
	mov bl,0x07
	next:
		mov al,[si]
		or al,al
		jz done
		int 0x10
		inc si
		jmp next
	done:
		ret



以上要求 DS:SI 指向空终止字符串。所以你需要这样的东西:


The above requires that DS:SI is pointing to a null terminated string. So you need something like this:

SECTION .data
minus3: db "---", 0

    SECTION .TEXT

; ...
; DS must be .data which it usually is 
    mov si,minus3
    call printf


这篇关于打印签到装配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆