小编Dny*_*ate的帖子

在C中写入Bootloader

我是编写引导加载程序的新手.我在asm中编写了一个helloworld引导程序,我现在正在尝试用C语言编写一个.我在C中编写了一个helloworld引导程序,但我无法编译它.

这是我的代码.我究竟做错了什么?我完全采取了错误的做法吗?

void print_char();
int main(void){
char *MSG = "Hello World!";
int i;

__asm__(
    "mov %0, %%SI;"
    :
    :"g"(MSG)
);
for(i=0;i<12;i++){
    __asm__(
        "mov %0, %%AL;"
        :
        :"g"(MSG[i])
    );
    print_char();
}

return 0;
}

void print_char(){
__asm__(
    "mov $0X0E, %AH;"
    "mov $0x00, %BH;"
    "mov $0x04, %BL;"
    "int $0x10"
);
}
Run Code Online (Sandbox Code Playgroud)

c linux assembly gcc bootloader

21
推荐指数
3
解决办法
3万
查看次数

python脚本中的身份验证以root身份运行

我正在使用Python在系统级Linux上做一个项目.所以,我想知道,如果我作为普通用户运行我的代码,如果我正在访问系统文件,那么它应该具有root权限,那么我如何提示root密码并以超级用户身份运行更多代码.我想知道,如何以超级用户身份运行python脚本,并提供密码提示.

任何帮助将不胜感激.先感谢您..

python pygtk

16
推荐指数
2
解决办法
1万
查看次数

如何编写hello world内核?

我正在编写一个内核,所以我开始在内核中使用hello world程序.

我用c ++编写了一个hello world内核,并且编译成功.

但是,当我启动它时,它不会在屏幕上显示任何内容.

这段代码出了什么问题?

link.ld

OUTPUT_FORMAT("binary")
ENTRY(start)
SECTIONS{
. = 0x00100000;

.text :{
    *(.text)
}

.rodata ALIGN (0x1000) : {
    *(.rodata)
}

.data ALIGN (0x1000) : {
    *(.data)
}

.bss : {
    sbss = .;
    *(COMMON)
    *(.bss)
    ebss = .;
}
}
Run Code Online (Sandbox Code Playgroud)

loader.asm

[BITS 32]

global start
extern _main

start:
    call _main
    cli 
    hlt
Run Code Online (Sandbox Code Playgroud)

video.h

#ifndef VIDEO_H
#define VIDEO_H

class Video{
    public:
        Video();
        ~Video();
        void clear();
        void write(char *cp);
        void put(char c);
    private:
        unsigned short *videomem;
        unsigned …
Run Code Online (Sandbox Code Playgroud)

c c++ assembly operating-system kernel

16
推荐指数
3
解决办法
4629
查看次数

标签 统计

assembly ×2

c ×2

bootloader ×1

c++ ×1

gcc ×1

kernel ×1

linux ×1

operating-system ×1

pygtk ×1

python ×1