亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? l3.asm

?? 開(kāi)放源碼的編譯器open watcom 1.6.0版的源代碼
?? ASM
字號(hào):
                .286
code            segment 'CODE'
assume          cs:code, ds:code

;
; QNX Boot loader.  This is on block one of the QNX partition.
; The PC/AT BIOS reads this block into 7000h and transfers control to it
;
; N.B. Actually, it's loaded at 0:7C00 [bac]
;

BIOS_TIMER      =       046ch   ; Where the BIOS keeps the tick count (18/sec)

BLK_SIZE        =       512     ; Number bytes in a disk block

stk             =       0800h   ; stack (grows down)
xtnttab         =       0400h   ; Where we read the extent table
block2          =       0200h   ; Where we read QNX partition block 2

xtnt            struc           ; structure offsets of directory entry on disk
                db 20   dup(?)
xtnt_1st_blk    dw      ?, ?    ; 20
xtnt_1st_nblks  dw      ?, ?    ; 24
xtnt_blk        dw      ?, ?    ; 28
                db 16   dup(?)
xtnt_cnt        dw      ?, ?    ; 48
xtnt            ends

                org     01f0h
load_seg        dw      ?       ; "BABE"
;bootsrc                db      'F'     ; Boot source 'F'/'H'=floppy/hard
bootsrc         db      0       ; Boot source 'F'/'H'=floppy/hard
sctr_base       db      ?       ; Sector base
boffset         dw      ?, ?    ; Block offset of QNX partition (4 byte long)
nheads          dw      ?       ; Number of heads
nsctr_trk       db      ?, ?    ; Sectors per track
ncyl            dw      ?       ; Number of cylinders
nsctr_cyl       dw      ?       ; 055h, AAh  (For hard disk bootable partition)

;
; Copy boot program up to top of available memory
; then transfer control to boot
;
                org     0

start:;         jmp short begin ; BIOS scan wants jmp instruction
begin:          call restart    ; The call will push our return addr
restart:        int 12h         ; memory size in kilobytes
                sub ax,4        ; reserve top 4k
                shl ax,6
                push cs         ; paranoia
                pop ds
                pop si          ; Recover return address
                sub si,3        ; Size of jmp/call instructions
                mov es,ax
                xor di,di       ; Where we want to go
                mov cx,BLK_SIZE/2
                cli
                rep movsw
                sti
                push es
                push offset boot
                retf

boot:           push cs
                pop ds
                push cs
                pop ss
                mov sp,stk
;
; Tell 'em .altboot is available and
; give 'em some time to choose it
;
                mov si,offset msg
prt:            lodsb
                or al,al
                je root
                call putc
                jmp prt
;
; calculate sectors/cylinder (for converting block numbers)
; and then read the first block of the root directory
;
root:           mov ax,nheads
                mul nsctr_trk
                mov nsctr_cyl,ax

                mov ax,2                ; We want to read the second block
                cwd
                mov di,1
                mov bx,block2
                call read_blk           ; Read block 2 (base 1) of partition

                mov ds,cx
                mov cx,3*9              ; 27 ticks (1.5 seconds)
kbpoll:         mov ax,0100h            ; check if key pressed
                int 16h                 ; (returns scan code/character)
                jnz chkalt
                mov dx,word ptr ds:BIOS_TIMER
roll:           cmp dx,word ptr ds:BIOS_TIMER
                je roll                 ; spin till timer increments
                loop kbpoll

chkalt:         push cs
                pop ds
                mov bp,block2+2*64      ; Assume .boot (3rd dir entry)
                cmp al,1bh
                jne load
                or bootsrc,' '          ; .altboot or altsysinit requested
                cmp xtnt_cnt[bp+64],0   ; Check for empty .altboot (4th entry)
                je load
                add bp,64

load:           mov cx,xtnt_cnt[bp]
                cmp cx,1
                je l0                   ; Skip if only one extent
;
; read extent table for finding subsequent extents
;
                push bx
                mov ax,xtnt_blk[bp]
                mov dx,xtnt_blk[bp+2]
                mov di,1
                mov bx,xtnttab
                call read_blk
                pop bx

l0:             lea si,xtnt_1st_blk[bp]
                mov di,xtnttab+8
                mov ax,[si]
                movsw                   ; Move xtnt_1st_blk
                mov dx,[si]
                movsw
                movsw                   ; Move xtnt_1st_cnt
                movsw

                mov di,1
                call read_blk           ; Read block 2 (base 1) of QNX parition
                mov bp,60h              ; Default is segment 60
                cmp [bx+4],'DD'         ; Signature present?
                jne lp0
                mov bp,[bx+10]          ; Get load segment (signature present)
lp0:            mov load_seg,bp

                mov si,xtnttab+8
lp1:            mov ax,[si]
                mov dx,[si+2]
lp2:            mov di,[si+4]           ; [si+6] better be zero
                mov es,bp
                xor bx,bx
                call read_blk           ; Read block
                add ax,di               ; Increment block number
                adc dx,0
                sub [si+4],di           ; Decrement number of blocks
                shl di,5                ; log2(512/16) [paragraphs/block]
                add bp,di
                cmp word ptr [si+4],0
                jnz lp2                 ; Continue while more blocks to read
                add si,8
                loop lp1

;
; Start up process manager
;
system_up:      mov al,0ffh             ; Disallow further hardware interrupts
                out 21h,al
                cli

                mov bl,bootsrc
;               mov ax,load_seg
;               or ax,ax                ; This will be zero for an old image
;               je oldimage
;               mov es,ax
                mov es,load_seg
                mov es:0ch,bl           ; New images patch the cs:000c of proc
;               jmp short startos
;oldimage:      mov ax,60h              ; Old images patch the bootsrc at 60:ff
;               mov es,ax
;               mov es:0ffh,bl
;               add ax,20h              ; Old images start execution at 80:0
;startos:       push ax
                push es
                xor ax,ax
                push ax
                retf                    ; Start the OS

;dummy:         iret

;
; Read di blocks at dx:ax into es:bx
;
read_blk:       push ax
                push bx
                push cx
                push dx
                sub ax,1
                sbb dx,0
                add ax,boffset
                adc dx,boffset+2
                div nsctr_cyl           ; ax = track, dx = remainder
                cmp ax,1024
                jl cylok
;
; Award BIOS allows two more bits of cylinder information
; in bits 6 and 7 of [dh]
;
                mov al,'C'              ; Inform user of cylinder > 1023
                call putc
cloop:          jmp cloop
cylok:          mov ch,al
                mov cl,ah
                ror cl,2                ; Top 2 bits of track in cl
                mov ax,dx
                cwd
                div nsctr_trk
                mov dh,al
                or cl,ah
                add cl,sctr_base
;
; if [di] is larger than remaining sectors/track then just read remainder
; also should return number of sectors read [al] in [di]
;
                test bootsrc,8          ; ctrl('h')
                je floppy
hard:           mov dl,80h              ; Read from hard disk
                mov al,dl               ; read up to 64k
                jmp short minimize
floppy:         xor dl,dl               ; Read from floppy disk
                mov al,[nsctr_trk]      ; read up to end of track
                sub al,ah
minimize:       xor ah,ah               ; di = min(di, al)
                cmp ax,di
                jg tryagain
                mov di,ax
tryagain:       mov al,13
                call putc
                mov al,10
                call putc
                mov ax,di
                call putx
                mov ax,bx
                call putx
                mov ax,cx
                call putx
                mov ax,dx
                call putx
                mov ax,es
                call putx
                mov ax,di
                mov ah,2                ; Read some blocks
                int 13h
                jnc no_err
;               mov al,'?'              ; Inform user of bad block
                mov al,ah
                add al,'0'
                call putc
                xor ah,ah               ; Reset disk
                int 13h
shr di,1
                jmp tryagain
no_err:         or ax,ax                ; zero sectors read with no error?
                jz blip
                mov di,ax
;blip:          mov al,'.'              ; positive feedback
blip:           add al,'@'
                call putc
                pop dx
                pop cx
                pop bx
                pop ax
                ret

putx:           rol ax,4
                call putn
                rol ax,4
                call putn
                rol ax,4
                call putn
                rol ax,4
                call putn
                mov al,' '
                call putc
                ret

putn:           push ax
                and al,15
                add al,'0'
                cmp al,'9'
                jbe put
                add al,7        ; '@'-'9'
put:            call putc
                pop ax
                ret

putc:           push bx
                mov bx,7
                mov ah,14
                int 10h
                pop bx
                ret

msg             db              "Press Esc to boot alternate OS", 0

code            ends
                end     start

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
人人爽香蕉精品| 一本大道久久a久久精品综合| 亚洲国产日韩在线一区模特| 亚洲美女免费视频| 1024成人网色www| 成人免费在线播放视频| 国产精品理论片| 国产精品福利影院| 日韩美女视频一区二区| 一区二区在线免费观看| 一区二区三区欧美视频| 亚洲高清视频在线| 蜜臀av亚洲一区中文字幕| 狂野欧美性猛交blacked| 国产在线精品一区二区三区不卡| 国产不卡高清在线观看视频| 国产69精品久久久久777| 成人激情综合网站| 91在线一区二区三区| 欧美在线你懂的| 91精品国产色综合久久久蜜香臀| 欧美美女视频在线观看| 日韩精品在线网站| 国产精品美女久久久久av爽李琼 | 久久免费美女视频| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 久久精品水蜜桃av综合天堂| 久久精品视频网| 自拍偷在线精品自拍偷无码专区| 亚洲品质自拍视频| 日韩高清国产一区在线| 国产一区91精品张津瑜| av动漫一区二区| 欧美老女人在线| 久久久影视传媒| 亚洲欧美另类久久久精品| 日韩电影在线免费看| 国产一区二区久久| 日本精品一区二区三区四区的功能| 69p69国产精品| 日本一区二区三区在线不卡| 亚洲一区二区三区四区中文字幕| 久久激情五月婷婷| 99在线视频精品| 欧美一区二区国产| 国产精品成人在线观看| 日本亚洲视频在线| 不卡视频免费播放| 337p亚洲精品色噜噜噜| 国产午夜精品一区二区三区嫩草| 亚洲电影第三页| 成人精品高清在线| 日韩女优av电影| 亚洲婷婷在线视频| 黄色日韩网站视频| 欧美少妇一区二区| 日本一区二区电影| 日韩福利电影在线观看| 91在线丨porny丨国产| 7777精品伊人久久久大香线蕉的 | 欧美精品久久一区二区三区| 国产色一区二区| 日本成人中文字幕在线视频| 成人av电影在线网| 精品国精品国产| 亚洲国产成人91porn| 懂色av一区二区三区蜜臀| 日韩欧美在线影院| 一区二区三区四区高清精品免费观看 | 久久久久久久综合狠狠综合| 亚洲已满18点击进入久久| 成人a免费在线看| xfplay精品久久| 日韩av电影天堂| 欧美日韩在线亚洲一区蜜芽| 国产精品久久久久天堂| 色婷婷av久久久久久久| 欧美精品一区二区在线播放| 午夜一区二区三区在线观看| a美女胸又www黄视频久久| 26uuu亚洲综合色欧美| 日本视频一区二区三区| 欧美日韩久久久| 亚洲一二三区视频在线观看| 99久久国产综合精品色伊| 国产无人区一区二区三区| 精品一区二区免费视频| 欧美一区二区啪啪| 天堂va蜜桃一区二区三区漫画版| 色哟哟国产精品免费观看| 国产精品乱码人人做人人爱| 国产麻豆精品一区二区| 久久在线免费观看| 黑人巨大精品欧美黑白配亚洲| 91精品一区二区三区在线观看| 亚洲国产综合人成综合网站| 日本韩国精品在线| 亚洲精品视频在线看| 91丝袜国产在线播放| 亚洲人成网站精品片在线观看| 成年人午夜久久久| 国产精品少妇自拍| 成人av免费观看| 中文字幕在线不卡一区| 91色婷婷久久久久合中文| 亚洲欧美在线观看| 色综合天天性综合| 亚洲综合精品久久| 欧美日韩一区在线观看| 天天色天天爱天天射综合| 911精品国产一区二区在线| 视频一区二区三区中文字幕| 6080yy午夜一二三区久久| 日韩福利电影在线| www久久精品| 成人在线一区二区三区| 日韩理论片网站| 欧美综合天天夜夜久久| 午夜久久电影网| 精品理论电影在线| 大胆欧美人体老妇| 亚洲视频一区在线观看| 欧美日本高清视频在线观看| 久久国产精品99久久久久久老狼| 久久久久久久久久久久电影| 成人精品一区二区三区中文字幕| 一区二区三区在线免费观看| 欧美日韩激情一区| 狠狠色丁香婷综合久久| 国产精品久久久久影院色老大| 欧美在线综合视频| 精品一区二区三区免费| 国产精品久久久久久久久免费丝袜 | 亚洲精品一区二区精华| 国产成人在线色| 亚洲精品五月天| 日韩欧美国产成人一区二区| 懂色中文一区二区在线播放| 一区二区三区免费观看| 欧美一级理论片| 成人午夜视频网站| 精品中文字幕一区二区| 国产欧美日韩三区| 色婷婷香蕉在线一区二区| 婷婷开心久久网| 久久亚洲影视婷婷| 色一情一伦一子一伦一区| 亚洲成a人片综合在线| 精品日韩一区二区三区| 91麻豆国产自产在线观看| 奇米777欧美一区二区| 国产欧美精品一区二区三区四区| 欧美丝袜丝nylons| 国产成人在线电影| 日韩国产成人精品| 国产精品成人网| 欧美videossexotv100| 日本乱码高清不卡字幕| 国产精品原创巨作av| 亚洲免费在线电影| 久久美女高清视频| 欧美剧情片在线观看| 波多野结衣中文字幕一区二区三区| 亚洲不卡一区二区三区| 国产精品美女久久久久av爽李琼| 日韩一区二区三区av| 91久久精品一区二区| 国产福利一区二区三区视频在线| 亚洲韩国一区二区三区| 国产精品区一区二区三| 日韩免费视频一区| 欧美日韩在线三区| 99久久99久久精品国产片果冻| 激情综合色丁香一区二区| 亚洲影视资源网| 亚洲欧美国产77777| 久久精品男人的天堂| 精品国产成人系列| 91精品福利在线一区二区三区| 91久久免费观看| a亚洲天堂av| 成人av在线影院| 国产精品亚洲成人| 国内不卡的二区三区中文字幕| 日日欢夜夜爽一区| 亚洲国产裸拍裸体视频在线观看乱了| 国产精品美女久久久久aⅴ| 久久久99精品久久| 久久久久9999亚洲精品| 日韩一区二区在线免费观看| 欧美日韩国产一级片| 欧美在线不卡视频| 色综合久久88色综合天天6 | 欧洲精品视频在线观看| 91小视频免费观看| 99久久综合色| www.欧美日韩| 成人的网站免费观看| av综合在线播放| 成人国产精品视频|