首页 > 其他分享 >0x02_My-OS操作系统里的helloworld

0x02_My-OS操作系统里的helloworld

时间:2023-02-21 14:01:26浏览次数:48  
标签:OS hlt helloworld write io My mem8 asm naskfunc

 

 直接看目录结构

│ main.c(可以调用asm的函数,可以使用最原始的c语言,你要明白基本所有头文件都要用汇编自己造)
│ Makefile(make脚本)
├─asm
│    asmhead.asm(别管)
│    ipl10.asm(别管)
│    naskfunc.asm(这里用来写asm函数)
└─include
    head.h(关联asm和c的头文件,c就可以调用asm的函数)

绿色的文件都可以动,我来教你们怎么动

下面我们来实现输出helloworld

naskfunc.asm

; naskfunc
; TAB=4

[FORMAT "WCOFF"]                ; 制作目标文件的模式    
[INSTRSET "i486p"]                ; 使用到486为止的指令
[BITS 32]                        ; 3制作32位模式用的机器语言
[FILE "naskfunc.asm"]            ; 文件名
    GLOBAL    _io_hlt,_write_mem8
        

[SECTION .text]

_io_hlt:    ; void io_hlt(void);
    HLT
    RET

_write_mem8: ; void write_mem8(int addr, int data);
    MOV ECX,[ESP+4] ; taking content of add
    MOV AL,[ESP+8] ; taking content of data
    MOV [ECX],AL ; *ecx=al
    RET

GLOBAL 这里 和 两个函数这里是关键,_io_hlt函数就是休眠cpu的,_是必须要的,这个没有链接不到c语言的函数

_write_mem8用来在指定内存地址写内容的,有两个参数,第一个是地址,第二个是数据,都是int  

 

标签:OS,hlt,helloworld,write,io,My,mem8,asm,naskfunc
From: https://www.cnblogs.com/Frank-dev-blog/p/17140703.html

相关文章

  • POST 方法
     请注意,查询字符串(名称/值对)是在POST请求的HTTP消息主体中发送的:POST/test/demo_form.phpHTTP/1.1Host:runoob.comname1=value1&name2=value2有关POST请求......
  • PostgreSQL update set from 两表联合更新
    updatet_businesstbsetsystem_id=ir.application_idfromt_business_irregularirwheretb.affected_business=ir.application_nameupdatet_businesstbsetsyst......
  • MySQL安装及配置
    Mysql本质上是一个软件  8.x,5.x  本人采用5.7.31版本(既支持win又支持mac)下载地址:https://downloads.mysql.com/archives/community/本人经常使用的为:链接:https......
  • 域内三大协议—Kerberos
    https://www.tarlogic.com/blog/how-kerberos-works/为什么需要了解原理,因为不同攻击方法不同,而有的可用,有的不可用。简介什么是kerberos和NTLM协议一样,Kerberos是......
  • 基于CANoe和Visual Studio实现Classic 和Adaptive AUTOSAR应用层调试
    “转载自维克多汽车技术(上海)有限公司,作者VectorChina”伴随“软件化”和“敏捷化”的推进,从基于域(Domain)架构到基于区域(Zonal)架构的发展,亦或OEM成立软件中心参与软件开发......
  • ASE140N04-ASEMI低压N沟道MOS管ASE140N04
    编辑:llASE140N04-ASEMI低压N沟道MOS管ASE140N04型号:ASE140N04品牌:ASEMI封装:TO-220F最大漏源电流:140A漏源击穿电压:40VRDS(ON)Max:0.04Ω引脚数量:3芯片个数:沟道类型:N沟道MOS管、......
  • ASE140N04-ASEMI低压N沟道MOS管ASE140N04
    编辑:llASE140N04-ASEMI低压N沟道MOS管ASE140N04型号:ASE140N04品牌:ASEMI封装:TO-220F最大漏源电流:140A漏源击穿电压:40VRDS(ON)Max:0.04Ω引脚数量:3芯片个数:沟道类型:N......
  • 0pen(V)pn在centos6.8部署教程
    环境准备:一、EasyRSA-2.2.2.tgz证书制作工具(github下载)      centos6.8yum源配置以及epel下载yuminstallepel-releaseyumcleanallyummakechache二、制作证......
  • Centos7搭建hadoop3.3.4分布式集群
    目录1、背景2、集群规划2.1hdfs集群规划2.2yarn集群规划3、集群搭建步骤3.1安装JDK3.2修改主机名和host映射3.3配置时间同步3.4关闭防火墙3.5配置ssh免密登录3.5.1......
  • Photoshop 制作证件照(完整步骤)
    准备尺寸网常用尺寸查询1常用尺寸phoioshop2022下载新建图层→Ctrl+Q修改图像→Ctrl+I修改画布→Ctrl+Alt+C填充前景色→Alt+Delete填充图案......