2020年6月14日 星期日
[X86] Real Mode
參考來源:
Intel 64 and IA-32 Architectures Software Developer Manuals
AMD64 Architecture Programmer's Manual
The Intel Microprocessors by Barry B.Brey
相關文章:
Protected Mode
Real Mode下是透過segment register與offset register來定址。
定址方式為:
segment register * 10h + offset register
以CS (code segment)和IP (Instruction pointer)為例,processor以這樣的組合來取得執行
指令的位址。這樣的組合通常寫作CS:IP或者CS:EIP,IP/EIP根據當下的執行 operation mode。
若CS=1400H且IP/EIP=1200H,則processor執行指令位址就是:
1400H * 10H + 1200H = 15200H
另一種組合為Stack,Stack使用SS:SP(SS:ESP)和SS:BP(SS:EBP)來定址。
若SS=2000H且BP=3000H,則Stack的記憶題位址為:
2000H * 10H + 3000H = 23000H
由於此定址方式的限制,在Real Mode下只能定址到1MB (20 bits)以下的記憶體。
2020年6月12日 星期五
[Batch] 移除數字的前置0
Example: 移除0120的前置0
@set var=0120
@for /f "tokens=* delims=0" %%a in ("%var%") do @set var=%%a
@if "%var%"=="" set var=0
@echo %var%
@for /f "tokens=* delims=0" %%a in ("%var%") do @set var=%%a
@if "%var%"=="" set var=0
@echo %var%
Output:
120
2020年6月1日 星期一
[VSCode] 相關檔案預設位置
記錄VS code 相關檔案的預設存放位置
setting.json
C:\Users\%USERNAME%\AppData\Roaming\Code\User\settings.jsonWorkspace storage
C:\Users\%USERNAME%\AppData\Roaming\Code\User\workspaceStorageCode snippet
C:\Users\%USERNAME%\AppData\Roaming\Code\User\snippets
Labels:
VSCode
訂閱:
文章 (Atom)