日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

自制操作系统6:寻址5M-天高任鸟飞

發布時間:2023/12/8 windows 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自制操作系统6:寻址5M-天高任鸟飞 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考:
https://blog.csdn.net/tyler_download/article/details/52242599
DOS是實模式,20位總線,1M內存。體驗不好。寄存器也是16位的。90年代用dos編程,竟然也有WPS這樣的神作,真是佩服求伯君。
windows是保護模式,32位總線。4G內存,80386是經典,win95也是經典。
保護模式不再直接尋址,而是用GDT獲取描述符,描述符中再計算地址。
進入保護模式一個巨大好處是可以引入C語言。
本次實驗就是把數據寫入內存5M位置,然后在從這個位置讀取數據顯示出來,體現尋址5M的能力。
boot_read5M.asm
比上節GDT表中增加了LABEl_DESC_5M這樣一個段,基地址0500000h,也就是5M的位置。
selector_5M是這個段離表頭的偏移。
es指向selector_5M,也就是5M的基地址,es:edi循環寫入字符串msg。
然后顯示msg: [es:si]是5M基地址,到[gs:edi]顯存。
編譯:nasm -o boot.bat boot_read5M.asm
使用上幾節的OpSystem.java類,這個只寫了第一個引導扇區,其他扇區寫了個字符串,不影響,可直接使用這個工具做system.img
加載到virtualbox 運行成功:

boot_read5M.asm

%include "pm.inc"

org 0x7c00

jmp LABEL_BEGIN

[SECTION .gdt]
LABEL_GDT: ? ? ? ? Descriptor ?0, ? ? ? ? 0, ? ? ? ? ? ? ? ?0
LABEL_DESC_CODE32: Descriptor ?0, ? ? ? ? SegCode32Len - 1, DA_C + DA_32
LABEL_DESC_VIDEO: ?Descriptor ?0B8000h, ? 0ffffh, ? ? ? ? ? DA_DRW
LABEL_DESC_5M: ? ? Descriptor ?0500000h, ?0ffffh, ? ? ? ? ? DA_DRW

GdtLen equ $ - LABEL_GDT
GdtPtr dw ?GdtLen - 1
? ? ? ?dd ?0

SelectorCode32 ?equ ?LABEL_DESC_CODE32 - LABEL_GDT
SelectorVideo ? equ ?LABEL_DESC_VIDEO - LABEL_GDT
Selector5M ? ? ?equ ?LABEL_DESC_5M ? ?- LABEL_GDT

[SECTION .s16]
[BITS 16]
LABEL_BEGIN:
? mov ax, cs
? mov ds, ax
? mov es, ax
? mov ss, ax
? mov sp, 0100h

? xor eax, eax
? mov ax, ?cs
? shl eax, 4
? add eax, LABEL_SEG_CODE32
? mov word [LABEL_DESC_CODE32 + 2], ax
? shr eax, 16
? mov byte [LABEL_DESC_CODE32 + 4], al
? mov byte [LABEL_DESC_CODE32 + 7], ah

? xor eax, eax
? mov ax, ?ds
? shl eax, 4
? add eax, LABEL_GDT
? mov dword [GdtPtr + 2], eax
??
? lgdt [GdtPtr]

? cli

? in al, 92h
? or al, 00000010b
? out 92h, al

? mov eax, cr0
? or eax, 1
? mov cr0, eax

? jmp dword SelectorCode32: 0

[SECTION .s32]
[BITS 32]
LABEL_SEG_CODE32:
? mov ax, SelectorVideo
? mov gs, ax

? mov si, msg
? mov ax, Selector5M
? mov es, ax
? mov edi, 0

write_msg_to_5M:
? cmp byte[si], 0
? je ?prepare_to_show_char
? mov al, [si]
? mov [es:edi], al
? add edi, 1
? add si, 1
? jmp write_msg_to_5M

prepare_to_show_char:
? mov ebx,10
? mov ecx, 2
? mov si, ?0
??
showChar:
? mov edi, (80*11)
? add edi, ebx
? mov eax, edi
? mul ecx
? mov edi, eax
? mov ah, 0ch
? mov al, [es:si]
? cmp al, 0
? je ?end
? add ebx, 1
? add si, 1
? mov [gs:edi], ax
? jmp showChar
end:
? jmp $
msg:
? DB "This string is written to 5M memroy", 0

SegCode32Len equ $ - LABEL_SEG_CODE32

總結

以上是生活随笔為你收集整理的自制操作系统6:寻址5M-天高任鸟飞的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男生看的污网站 | 久草大 | 亚洲爱色 | 国产资源网站 | 欧美特级黄色片 | 欧美日韩午夜激情 | 国产69熟 | av网站在线播放 | 日日躁夜夜躁白天躁晚上躁91 | 亚洲精品国产av | 亚洲av久久久噜噜噜熟女软件 | 国产视频分类 | 欧州一区二区 | 美日韩精品| 久久久国产精品视频 | 啪啪导航| 一区二区91 | 91丨九色丨国产 | 国产黄色录像片 | 一级做a爰片久久毛片潮喷 天天透天天干 | 午夜在线观看视频网站 | 国产精品mv | 欧美一级黄色片网站 | 亚洲 欧美 激情 另类 | 欧美日韩国产一区 | 欧美| 制服丝袜先锋 | 欲色网站| 爱爱爱免费视频 | 欧美日韩精品一区二区三区 | 一区二区三区视频在线观看 | 色婷婷综合在线 | 久久涩涩 | 欧美视频亚洲 | 国产成人欧美 | 欧美日韩在线精品 | 五月天天色 | 丰满人妻一区二区三区53号 | 自拍偷拍第 | 国产精品中文无码 | 日本男男激情gay办公室 | 全国探花 | 久久影院午夜 | 久久久久久久中文字幕 | 黄色福利视频 | 欧美视频黄色 | 香蕉色视频 | 日韩尤物 | 精品日韩一区二区三区 | 欧美囗交做爰视频 | 亚洲国产成人va在线观看天堂 | a片在线免费观看 | 国产情侣久久 | 日本青青草视频 | 无码人妻精品一区二区三区66 | 性欧美ⅹxxxx极品护士 | 公交顶臀绿裙妇女配视频 | 一级a性色生活片久久无 | 欧美黄色a| 亚洲精品专区 | 国产精品国产自产拍高清av | 亚洲精品888| 天天操人人射 | 肉体粗喘娇吟国产91 | 伊人天天操 | 日本特黄| 成人99| 国产精品乱码久久久久久久久 | 国产美女无遮挡网站 | 91高清国产 | 国产精品久久久久影院色老大 | 日本123区| 三级在线观看 | 久久久一区二区三区 | 久久人妻无码aⅴ毛片a片app | 视频在线观看电影完整版高清免费 | 无码aⅴ精品一区二区三区 精品久久在线 | 日本中文字幕一区二区 | 国产免费麻豆 | 色香蕉网| 岛国av电影在线观看 | 亚洲 激情 小说 另类 欧美 | 国产福利在线播放 | 久色成人网 | 成年人免费在线 | 亚洲熟妇一区 | 国产精品视频免费在线观看 | 五月天导航 | 国产精品视频网址 | 一级毛片aa | 欧美第三页 | 久久网国产 | 亚洲产国偷v产偷v自拍涩爱 | 花房姑娘免费观看全集 | 欧美激情电影一区二区 | 亚洲国产成人精品久久久 | 欧美囗交做爰视频 | 日本中文字幕在线不卡 | 极品美女销魂一区二区三区 |