bits 16 ;16位實模式指令
initseg equ 0x7c00 ;boot被載入的位置所有offset需要使用
start:
mov ax, cs ;cs被初始化為0x0000
mov ss, ax
mov sp, 0xffff ;設定乙個堆疊
call clear
call print
mov ax, 0x9000 ;boot將被移動到0x90000處
mov es, ax
xor di, di
mov ax, 0x07c0 ;從0x07c00處複製, 注意段暫存器值要右移4位
mov ds, ax
xor si, si
mov cx, 256 ;共有512位元組
run:
mov ax, [ds:si]
mov [es:di], ax
inc si
inc si
inc di
inc di
dec cx
jnz run
jmp 0x9000:nloop
nloop:
mov ax, cs ;注意這裡cs為0x9000
mov ds, ax
mov es, ax
mov ax, 1301h
mov bp, string
mov cx, strlen
mov dh, 5
mov dl, 0
mov bh, 0
int 10h
jmp $
print:
mov ax, cs
mov es, ax
mov ax , 1301h
mov bl, 7
mov bp, initseg + string ;定位字串位置0x7c00 + string
mov cx, strlen
mov dh, 0
mov dl, 0
mov bh, 0
int 10h
ret
clear:
mov al, ' '
mov bh, 0
mov bl, 7
mov cx, 2000
mov ah, 09h
int 10h
ret
string : db 'booting...'
strlen equ $ - string
times (512-($ -$$)- 2) db 0 ;padding with 0
db 0x55
db 0xaa
自己實現乙個簡單的ArrayList
自己簡單的實現arraylist的 註解很清楚了,寫了arraylist的add obj 方法 remove index 方法,get index 方法,自己定義迭代器,自己進行迭代 迭代器介面 public inte ce iterator集合 的實現 version description 自己...
自己實現乙個簡單的hashmap
這個hashmap實現方式應該是jdk1.7的,在資料量小的時候和jdk1.8實現的差不多,不過我這個沒有採用鍊錶長度8時轉化紅黑樹增加查詢效率,在擴容時也是全部元素重新hash,計算新的位置,所以如果大資料量的時候,複製到新的陣列就會比較慢.jdk8裡面對複製到新的陣列也是有優化的,我這裡就沒做了...
erlang 自己搞定乙個簡單的MakeFile
在windows下面執行erlang的檔案 就是.beam檔案 每次都要從cmd,cd到你編譯好erlang檔案的目錄下就是有 beam 的目錄下,這樣超級麻煩。有沒有什麼辦法,在cmd中,輸入erl,直接就直接可以執行 不用再cd到你的.beam的資料夾下 你已經編譯好的的.beam檔案。首先要修...