汇编打印磁盘信息(二进制)

;miOS

	        ORG     0X7C00  

	        JMP     ENTRY
	        DB      0x90
	        DB      "HARIBOTE"
	        DW      512
	        DB      1
	        DW      1
	        DB      2
	        DW      224
	        DW      2880
	        DB      0xf0
	        DW      9
	        DW      18
	        DW      2
	        DD      0
	        DD      2880
	        DB      0,0,0x29
	        DD      0xffffffff
	        DB      "HARIBOTEOS "
	        DB      "FAT12   "
	        RESB    18    

ENTRY:
	        MOV AX,0
	        MOV     SS,AX
	        MOV SP,0X7C00
	        MOV DS,AX
	        MOV ES,AX         

		CALL 	GetDiskParam
		JMP	FIN

GetDiskParam:
		MOV AH,0X08
		INT	0X13

		push	dx
		push	ax
		push	bx
		push	si
		CALL 	SHOW16
		pop	si
		pop	bx
		pop	ax
		pop	dx

		push	dx
		push	ax
		push	bx
		push	si
		CALL	ShowMsg
		pop	si
		pop	bx
		pop	ax
		pop	dx

		MOV 	DX,CX
		push	dx
		push	ax
		push	bx
		push	si
		CALL 	SHOW16
		pop	si
		pop	bx
		pop	ax
		pop	dx

		push	dx
		push	ax
		push	bx
		push	si
		CALL	ShowMsg
		pop	si
		pop	bx
		pop	ax
		pop	dx

		MOV	DX,BX
		push	dx
		push	ax
		push	bx
		push	si
		CALL 	SHOW16
		pop	si
		pop	bx
		pop	ax
		pop	dx

		ret

SHOW16:
		ROL DX,1
	        MOV AX,DX
	        AND AX,1
	        CMP AX,1
	        JE  AA1
	        MOV AL,"0"
	        JMP BB1
	AA1:    MOV AL,"1"
	BB1:    MOV AH,0X0E
	        MOV BX,15
	        INT 0X10
	        ADD SI,1
	        CMP SI,16
	        JB SHOW16
		ret  

ShowMsg:	MOV		SI,MSG
putloop:
		MOV		AL,[SI]
		ADD		SI,1
		CMP		AL,0
		JE		EXIST
		MOV		AH,0x0e
		MOV		BX,15
		INT		0x10
		JMP		putloop
	EXIST:	ret

FIN:
		HLT
	        JMP FIN  

MSG:
		DB		0x0a, 0x0a
		DB		0

MSG2:
		DB		"Hellow World!"
		DB		0x0a,0x0a
		DB		"Hellow World!"
		DB		0

	        RESB    0X7DFE-$
	        DB  0X55,0XAA 

时间: 2024-11-05 11:39:40

汇编打印磁盘信息(二进制)的相关文章

Cortex-M3开发经验(三):在HardFault中打印栈信息

Cortex-M3开发经验(三):在HardFault中打印栈信息 在<Cortex-M3开发经验(二):确认发生HardFault的地方>中,我们提到如何查找出错地方.但是这有一个问题,就是必须链接调试器.那么在某些情况下,我们无法连接调试器,那么就无法读取到栈信息了吗?我们可以在进入HardFault时,获取栈指针,然后通过串口的方式打印出来吗? 说干就干,有好的想法,也必须有实际的行动验证自己的想法. 如何获取栈指针? 卡住我们的第一个问题就是如何获取栈指针了.就是如何获取SP,MSP(

Java打印整数的二进制表示(代码与解析)

Java打印整数的二进制表示(代码与解析) int a=-99; for(int i=0;i<32;i++){ int t=(a & 0x80000000>>>i)>>>(31-i); System.out.print(t); } 拆分一下这段代码,要理解这个移位输出的问题还需要理解的以下内容:* 0x80000000是数的十六进制表示,转成二进制表示为10000000000000000000000000000000* 运算的优先级,移位运算高于逻辑运算,

学习API之获取磁盘信息

#include <windows.h>#include <stdio.h> /************************************* BOOL GetDiskSpaceInfo(LPSTR pszDrive)* 功能:根据输入磁盘驱动器,获取磁盘信息* 参数:LPSTR pszDrive 驱动器根路径,如 D:************************************/ BOOL GetDiskSpaceInfo(LPSTR pszDrive){

fstab开机自动挂载磁盘信息详解

df -h    以人类可读的方式显示磁盘信息 [[email protected] etc]# df -h 文件系统                     容量  已用  可用 已用% 挂载点 /dev/mapper/VolGroup00-root   64G   17G   44G   28% / devtmpfs                     3.5G     0  3.5G    0% /dev tmpfs                        3.5G     0

STM32M CUBE实现printf打印调试信息以及实现单字节接收

在写单片机程序时我们一般喜欢使用printf来通过串口打印调试信息,但这个函数是不可以直接使用的,必须做点对库函数的改动. 详细工程下载地址: http://download.csdn.net/detail/liucheng5037/8847961 STM32M CUBE是ST官方提供的库以及初始化工具,很好很强大,但是在UART方面值提供了如下函数: HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *

借助Sigar API获取磁盘信息

Sigar(全称System Information Gatherer And Reporter,即系统信息收集报表器),它提供了一个开源的跨平台的收集计算机硬件和操作系统信息的API(该API底层接口用C语言编写),本文将演示如何借助Sigar API获取磁盘信息: package com.ghj.packageoftest; import org.hyperic.sigar.FileSystem; import org.hyperic.sigar.FileSystemUsage; impor

Hadoop源码学习笔记(2) ——进入main函数打印包信息

Hadoop源码学习笔记(2) ——进入main函数打印包信息 找到了main函数,也建立了快速启动的方法,然后我们就进去看一看. 进入NameNode和DataNode的主函数后,发现形式差不多: public static void main(String args[]) {     try {       StringUtils.startupShutdownMessage(DataNode.class, args, LOG);       DataNode datanode = crea

xcode8 关闭控制台打印不用信息

控制台打印的信息如下 2016-10-15 10:13:17.774543 LGLSearch-Dome[1656:356106] subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_

无限级分类和打印磁盘文件目录

一.无限级分类 -- 创建表create table it_category (cat_id int unsigned primary key auto_increment,cat_name varchar(50) default '',sort_order int default 0,parent_id int unsigned);-- 插入记录insert into it_category values (75, '分类KKK', 50, 0);insert into it_category