王爽《汇编语言》探究实验五——自己实现一个printf函数

本文介绍了一篇关于使用汇编语言实现一个简单的`printf`函数的实验。通过识别并处理格式控制字符串中的`%c`和`%d`标志,将变量值输出到屏幕。代码中涉及到对`%c`字符的直接显示,以及对`%d`整数的十进制转换和屏幕位置的管理。
摘要由CSDN通过智能技术生成
void myprintf (char *, ...);
int length;
void main () {
	myprintf ("abcdefg%h%%%dabcde%c", -123, 'm');
}
void myprintf (char *chars, ...) {
	int i = 0;
	int anum=0, anumcopy = 0, yu=0, yulen=0;
	int yuss[9];
	int *yus=yuss;
	int length;
	int position = 0;
	int ssposi = 0;
	char a;
	length = 0;
	a = chars[0];
	while (a != '\0') {		//取得格式控制字符串的长度;
		length++;
		a = chars[length];
		}
	while (i < length) {
		if (*(char *)(0x0c3c0194+i) == '%') {		//对%的识别;
			if (*(char *)(0x0c3c0194+i+1)=='c') {	//识别%c;
				*(char far *)(0xb8000000+160*10+position) = *(int *)(_BP+6+ssposi);
				i+=2;
				ssposi+=2;
			} else if (*(char *)(0x0c3c0194+i+1)=='d') {	//识别%d;
				anum = *(int *)(_BP+6+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值