android平台的gui编程,你没看错:动手开发GUI简单操作系统(一)

本文介绍了在Android平台上进行GUI编程的基础知识,包括如何完善打印功能,如打印字符串和地址。通过示例代码,展示了如何实现打印字符串的汇编实现,以及打印4位十六进制地址的方法。此外,还提供了简单的 bootsect.asm 示例,演示了如何调用这些打印功能。
摘要由CSDN通过智能技术生成

完善打印功能

为了方便我们今后的调试,我们需要完善打印功能,这样出了什么差错直接print就OK了。我们的打印分为两种:打印字符串和打印地址。

打印字符串

都知道,C语言中的字符串结构长这样:

"Venus" -> 'V' 'e' 'n' 'u' 's' '0x0'

都是几个字符再加上一个空字节0x0。如果要打印字符串,而不是单个字符,在汇编里面,可以对应成一个栈来处理。同目录新建一个print.asm:

print:

pusha ; 将所有东西压入栈

; 记住:一直循环打印栈的字符,直到碰到字符串末0x0

; while (string[i] != 0) { print string[i]; i++ }

start:

mov al, [bx] ; bx相当于字符串参数,是字符串的首位

cmp al, 0    ; al和0比较

je done      ; 如果相等,就到了字符串末尾,跳转到结束done

mov ah, 0x0E ; 如果不相等,开始打印,先进入tty模式

int 0x10     ; 直接中断。因为al参数已经有字符了

add bx, 1    ; 如果你把这个栈+1,相当于地址后移一位,这样再打印就是下一个字符串

jmp start    ; 递归

done:

popa         ; 弹出栈

ret          ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值