阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

手机号码,快捷登录

老司机
查看: 1216|回复: 2

[原创] 一个经典的实模式向保护模式相互切换,并输出显示的HELLO WORLD

[复制链接]

该用户从未签到

发表于 2009-10-30 13:39:31 | 显示全部楼层 |阅读模式
.386P
CSEG16 SEGMENT USE16
    ASSUME DS: CSEG16
Start:
    cld
    push cs
    pop ds
    mov ax, 0B800H
    mov es, ax
    mov si, OFFSET MsgR1
    mov di, (20)*2
    call ShowMessage
    mov eax, SEG CSEG32
    shl eax, 4
    add DWORD PTR CSD32[2], eax
    mov eax, SEG CSEG16
    shl eax, 4
    add DWORD PTR CSD16[2], eax
    add eax, OFFSET Gdt0
    mov GdtA, eax
    push es
    cli
    lgdt FWORD PTR GdtL
    mov eax, cr0
    or al, 1
    mov cr0, eax
    DB 0EAH    ; jmp CSD32:0
    DW 0
    DW OFFSET CSD32 - OFFSET Gdt0
Return16:
    mov si, OFFSET Msg16
    mov di, (80*2+20)*2
    call ShowMessage
    mov eax, cr0
    and al, 0FEH
    mov cr0, eax
    jmp @F
@@:
    pop es
    sti
    mov si, OFFSET MsgR2
    mov di, (80*3+20)*2
    call ShowMessage
    mov ah, 4CH
    int 21H
ShowMessage PROC NEAR
    mov ah, 0F4H
    .repeat
        lodsb cs:[si]
        stosw es:[di]
    .until (al == 0)
    ret
ShowMessage ENDP
Gdt0    DW 00000H, 0000H, 0000H, 0000H
CSD32    DW 0FFFFH, 0000H, 9A00H, 00CFH
CSD16    DW 0FFFFH, 0000H, 9A00H, 0080H
DSD16    DW 0FFFFH, 8000H, 920BH, 0080H
GdtL    DW $-Gdt0-1
GdtA    DD 0
MsgR1    DB "HELLO WORLD_DOS_16", 0
Msg16    DB "HELLO WORLD_P16", 0
MsgR2    DB "RETURN DOS---QQ GROUP:83372198;QQ:750347821;EMAIL:750347821@QQ.COM NAME:CXDZXC AddressANZHOU DATE:2009-3-15,HTTP://BIOSOS.5D6D.COM", 0
CSEG16 ENDS
CSEG32 SEGMENT USE32
    mov ax, DSD16 - Gdt0
    mov es, ax
    mov esi, OFFSET Msg32
    mov di, (80*1+20)*2
    mov ah, 0F4h
    .repeat
        lodsb cs:[esi]
        stosw es:[di]
    .until (al == 0)
    DB 0EAH    ; jmp CSD16:0
    DD Return16
    DW CSD16 - Gdt0
Msg32    DB "HELLO WORLD_P32", 0
CSEG32 ENDS
SSEG SEGMENT STACK
    DW 400H DUP(?)
SSEG ENDS
END Start

[ 本帖最后由 cxdzxc 于 2009-10-30 14:02 编辑 ]
一个经典的实模式向保护模式切换并输出显示的HELLO WORLD.jpg

hello.rar

422 Bytes, 下载次数: 1

楼主热帖
启用邀请码注册,提高发帖质量,建设交流社区

该用户从未签到

发表于 2009-10-30 13:48:57 | 显示全部楼层
学习了 学习了 学习了
启用邀请码注册,提高发帖质量,建设交流社区

该用户从未签到

 楼主| 发表于 2009-11-2 09:38:29 | 显示全部楼层
没人关注吗................
启用邀请码注册,提高发帖质量,建设交流社区
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表