使用mbr在清空之后的屏幕上显示绿色字

Posted seasidezhb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用mbr在清空之后的屏幕上显示绿色字相关的知识,希望对你有一定的参考价值。

mbrWrite.asm里边的代码如下:

SECTION MBR vstart=0x7c00         
   mov ax,cs      
   mov ds,ax
   mov es,ax
   mov ss,ax
   mov fs,ax
   mov sp,0x7c00
   mov     ax, 0x600
   mov     bx, 0x700
   mov     cx, 0              
   mov     dx, 0x184f	   			   			   
   int     0x10            
   mov ah, 3		
   mov bh, 0		
   int 0x10		
			
   mov ax, message 
   mov bp, ax		
			
   
   mov cx, 13		
   mov ax, 0x1301	
			
   mov bx, 0x2		
			
   int 0x10		
   jmp $		
   message db "Learning good"
   times 510-($-$$) db 0
   db 0x55,0xaa
   

bximage -hd=60 -func=create -imgmode="flat" -q boot.img创建一个60M大小的硬盘。
nasm -f bin mbrWrite.asm -o mbrWrite.bin将mbrWrite.asm生成bin文件。
sudo dd if=mbrWrite.bin of=boot.img bs=512 count=1 conv=notrunc将mbrWrite.bin写入到boot.img文件里边。
bochsrc文件内容如下:

# configuration file generated by Bochs
plugin_ctrl: unmapped=true, biosdev=true, speaker=true, extfpuirq=true, parallel=true, serial=true
config_interface: textconfig

# display_library: x
# gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0

# 这两个一起开启
magic_break: enabled=1
#display_library: x, options="gui_debug"
display_library: x

memory: host=32, guest=32
romimage: file="/usr/local/share/bochs/BIOS-bochs-latest", address=0x00000000, options=none
vgaromimage: file="/usr/local/share/bochs/VGABIOS-lgpl-latest"
boot: disk
floppy_bootsig_check: disabled=0
ata0: enabled=true, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="boot.img", mode=flat
ata0-slave: type=none
ata1: enabled=true, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata1-master: type=none
ata1-slave: type=none
ata2: enabled=false
ata3: enabled=false
optromimage1: file=none
optromimage2: file=none
optromimage3: file=none
optromimage4: file=none
optramimage1: file=none
optramimage2: file=none
optramimage3: file=none
optramimage4: file=none
pci: enabled=1, chipset=i440fx
vga: extension=vbe, update_freq=5, realtime=1
cpu: count=1, ips=4000000, model=bx_generic, reset_on_triple_fault=1, cpuid_limit_winnt=0, ignore_bad_msrs=1, mwait_is_nop=0
cpuid: level=6, stepping=3, model=3, family=6, vendor_string="GenuineIntel", brand_string="              Intel(R) Pentium(R) 4 CPU        "
cpuid: mmx=true, apic=xapic, simd=sse2, sse4a=false, misaligned_sse=false, sep=true
cpuid: movbe=false, adx=false, aes=false, sha=false, xsave=false, xsaveopt=false, smep=false
cpuid: smap=false, mwait=true
print_timestamps: enabled=0
# no gdb stub
port_e9_hack: enabled=0
private_colormap: enabled=0
clock: sync=none, time0=local, rtc_sync=0
# no cmosimage
log: -
logprefix: %t%e%d
debug: action=ignore
info: action=report
error: action=report
panic: action=ask
keyboard: type=mf, serial_delay=250, paste_delay=100000, user_shortcut=none
mouse: type=ps2, enabled=false, toggle=ctrl+mbutton
speaker: enabled=true, mode=system
parport1: enabled=true, file=none
parport2: enabled=false
com1: enabled=true, mode=null
com2: enabled=false
com3: enabled=false
com4: enabled=false

bochs -f bochsrc使用bochsrc文件开始模拟。

如上图,按回车键。

输入“c”,按回车键。


最后显示如上图。

此文章为4月Day 6学习笔记,内容来源于极客时间《操作系统实战 45 讲》。

如何在小屏幕上更改 div 的顺序?

【中文标题】如何在小屏幕上更改 div 的顺序?【英文标题】:How to change order of divs on smaller screens? 【发布时间】:2015-11-17 04:11:18 【问题描述】:

当屏幕尺寸小于 480 像素时,我需要重新排序 div。

我不想使用position: absolute,因为绿色区域的高度可能会因文本数量而异。

我需要小屏幕顺序为红色、绿色、红色、绿色、红色、绿色(每个红色都在直接绿色的顶部,宽度为 100%)。

有什么想法吗?非常感谢

*, html, body 
    margin: 0;
    padding: 0;


.container 
    width: 100%;
    display: inline-block;
    box-sizing: border-box;


.full_half 
    display: inline-block;
    width: 50%;
    background-color: green;
    float: left;
    min-height: 100px;


.pic 
    background-color: red;
    height: 100px;


.text 
    box-sizing: border-box;
    padding: 20px 120px;


@media screen and (max-width: 480px) 
    .full_half 
      width: 100%;
    
    
    .text
     padding: 0 0 !important;
    
<div class="container">
    <div class="full_half pic"></div>
    <div class="full_half text">test</div>
</div>
<div class="container">
    <div class="full_half text">test</div>
    <div class="full_half pic"></div>
</div>
<div class="container">
    <div class="full_half pic"></div>
    <div class="full_half text">
        dfdfdfdfdfdffdfdfdfdfdfdfdfdfdfdf<br />
        dfdfdfdfdfdffdfdfdfdfdfdfdfdfdfdf<br />
        dfdfdfdfdfdffdfdfdfdfdfdfdfdfdfdf<br />
    </div>
</div>

已解决:

我终于设法通过将 flexbox 应用于容器来更改顺序(仅当宽度小于 480 像素时)。

css 更改:

@media screen and (max-width: 480px) 
    .container 
      flex-direction: column;
    
    .pic 
      order: 1;
    

    .text
     order: 2;
    

http://jsfiddle.net/vquf7z7b/

【问题讨论】:

【参考方案1】:

使用CSS Flexbox,您可以使用order 属性控制元素的视觉顺序,使用flex-direction 属性控制div 的x/y 方向。

以下是对代码的一些简单调整,可让您的布局正常工作:

CSS

.container 
     display: flex; /* NEW */
    /* width: 100%; */
    /* display: inline-block; */
    /* box-sizing: border-box; */


@media screen and (max-width: 480px) 
    .full_half   width: 100%; 
    .text        padding: 0 0 !important; 
    .container  flex-direction: column;          /* NEW */
    .container:nth-child(2) > .pic  order: -1;   /* NEW */

现在,当屏幕尺寸小于 480 像素时,div 会堆叠在单列中,顺序为红、绿、红、绿、红、绿。

*,
html,
body 
  margin: 0;
  padding: 0;

.container 
  display: flex;

.full_half 
  display: inline-block;
  width: 50%;
  background-color: green;
  float: left;
  min-height: 100px;

.pic 
  background-color: red;
  height: 100px;

.text 
  box-sizing: border-box;
  padding: 20px 120px;

@media screen and (max-width: 480px) 
  .full_half 
    width: 100%;
  
  .text 
    padding: 0 0 !important;
  
  .container 
    flex-direction: column;
  
  .container:nth-child(2) > .pic 
    order: -1;
  
<div class="container">
  <div class="full_half pic"></div>
  <div class="full_half text">test</div>
</div>
<div class="container">
  <div class="full_half text">test</div>
  <div class="full_half pic"></div>
</div>
<div class="container">
  <div class="full_half pic"></div>
  <div class="full_half text">
    dfdfdfdfdfdffdfdfdfdfdfdfdfdfdfdf
    <br />dfdfdfdfdfdffdfdfdfdfdfdfdfdfdfdf
    <br />dfdfdfdfdfdffdfdfdfdfdfdfdfdfdfdf
    <br />
  </div>
</div>

revised fiddle

在上面的示例中,flex 容器 (.container) 的子元素排成一行,这是 flexbox (flex-direction: row) 的默认布局。

每个子元素默认为order: 0。通过在第二个.container 中为div.pic 类赋予-1 的order 值,它被定位在其兄弟之前(div.text 的值为0)。我们也可以将第一个兄弟值设为 1,从而将其移动到 div 之后和 .pic。 Learn more about the order property.

通过将 flex-direction 的值从其默认值 (row) 更改为 column,div 堆叠在一个列中。 Learn more about the flex-direction property.


浏览器支持: 所有主流浏览器都支持 Flexbox,except IE < 10。一些最新的浏览器版本,例如 Safari 8 和 IE10,需要vendor prefixes。要快速添加所需的所有前缀,请使用Autoprefixer。更多详情this answer。

【讨论】:

以上是关于使用mbr在清空之后的屏幕上显示绿色字的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 6 各种启动文件损坏及修复

Linux学习134 Unit 11

急!请问linux下的清屏命令是啥!

操作系统之loader的实现

操作系统之loader的实现

将grub写入mbr