shermanliu 发表于 2009-5-24 16:39:29

CPU Reset 后的前100多条指令

CPU Reset 后的前100多条指令
测试平台: Intel Menlow Crown Bench CRB
BIOS:             自带的 AMI BIOS

Below is the instruction and registers when CPU reset
F000:0000FFF0 EAAAFF00F0       JMP         far16 ptr f000:0000ffaa
EAX    = 00000000: AX=0000 AH=00 AL=00
EBX    = 00000000: BX=0000 BH=00 BL=00
ECX    = 00000000: CX=0000 CH=00 CL=00
EDX    = 000106C0: DX=06C0 DH=06 DL=C0
EBP    = 00000000: BP=0000
ESI    = 00000000: SI=0000
EDI    = 00000000: DI=0000
ESP    = 00000000: SP=0000
CS   = F000
DS   = 0000
SS   = 0000
ES   = 0000
FS   = 0000
GS   = 0000
EIP    = 0000FFF0: IP=FFF0
EFLAGS = 00000002: FLAGS=0002 ID=0 VIP=0 VIF=0 AC=0 VM=0 RF=0 NT=0 IOPL=0 OF=0 DF=0 INF=0 TF=0 SF=0 ZF=0 AF=0 PF=0 CF=0
CR0 = 60000010: PG=0 CD=1 NW=1 AM=0 WP=0 NE=0 ET=1 TS=0 EM=0 MP=0 PE=0
CR2 = 00000000
CR3 = 00000000: PCD=0 PWT=0
CR4 = 00000000: VMXE=0 OSXMMEXCPT=0 OSFXSR=0 PCE=0 PGE=0 MCE=0 PSE=0 PAE=0 DE=0 TSD=0 PVI=0 VME=0

Instruction for CPU step 00
F000:FFAA E9C300         JMP         near16 ptr 0070

Instruction for CPU step 01
F000:0070 E9FD01         JMP         near16 ptr 0270

Instruction for CPU step 02
F000:0270 FA               CLI                     

Instruction for CPU step 03
F000:0271 FC               CLD                     

Instruction for CPU step 04
F000:0272 668BE0         MOV         ESP,EAX   

Instruction for CPU step 05
F000:0275 8CC8             MOV         AX,CS      

Instruction for CPU step 06
F000:0277 8ED0             MOV         SS,AX      

Instruction for CPU step 07
F000:027C E957FE         JMP         near16 ptr 00d6

Instruction for CPU step 08
F000:00D6 E9A601         JMP         near16 ptr 027f

Instruction for CPU step 09
F000:027F B0D0             MOV         AL,d0      

Instruction for CPU step 10
F000:0281 E680             OUT         80,AL      

Instruction for CPU step 11
F000:0283 BF8902         MOV         DI,0289   

Instruction for CPU step 12
F000:0286 E9AE06         JMP         near16 ptr 0937

Instruction for CPU step 13
F000:0937 0F08             INVD                  

Instruction for CPU step 14
F000:0939 0F6EFF         MOVD      MM7,EDI   

Instruction for CPU step 15
F000:093C 668BC4         MOV         EAX,ESP   

Instruction for CPU step 16
F000:093F E97C08         JMP         near16 ptr 11be

Instruction for CPU step 17
F000:11BE E981F7         JMP         near16 ptr 0942

Instruction for CPU step 18
F000:0942 BF4809         MOV         DI,0948   

Instruction for CPU step 19
F000:0945 E9C004         JMP         near16 ptr 0e08

Instruction for CPU step 20
F000:0E08 0F20C0         MOV         EAX,CR0   

Instruction for CPU step 21
F000:0E0B 660D00000060   OR          EAX,60000000

Instruction for CPU step 22
F000:0E11 0F22C0         MOV         CR0,EAX   

Instruction for CPU step 23
F000:0E14 0F09             WBINVD                  

Instruction for CPU step 24
F000:0E16 66B9FF020000   MOV         ECX,000002ff

Instruction for CPU step 25
F000:0E1C 0F32             RDMSR                  

Instruction for CPU step 26
F000:0E1E 25FFF3         AND         AX,f3ff   

Instruction for CPU step 27
F000:0E21 0F30             WRMSR                  

Instruction for CPU step 28
F000:0E23 0F09             WBINVD                  

Instruction for CPU step 29
F000:0E25 0F20E0         MOV         EAX,CR4   

Instruction for CPU step 30
F000:0E28 247F             AND         AL,7f      

Instruction for CPU step 31
F000:0E2A 0F22E0         MOV         CR4,EAX   

Instruction for CPU step 32
F000:0E2D 0F20D8         MOV         EAX,CR3   

Instruction for CPU step 33
F000:0E30 0F22D8         MOV         CR3,EAX   

Instruction for CPU step 34
F000:0E33 FFE7             JMP         DI         

Instruction for CPU step 35
F000:0948 66B9FE000000   MOV         ECX,000000fe

Instruction for CPU step 36
F000:094E 0F32             RDMSR                  

Instruction for CPU step 37
F000:0950 0FB6D8         MOVZX       BX,AL      

Instruction for CPU step 38
F000:0953 6633C0         XOR         EAX,EAX   

Instruction for CPU step 39
F000:0956 668BD0         MOV         EDX,EAX   

Instruction for CPU step 40
F000:0959 B95002         MOV         CX,0250   

Instruction for CPU step 41
F000:095C 0F30             WRMSR                  

Instruction for CPU step 42
F000:095E B95802         MOV         CX,0258   

Instruction for CPU step 43
F000:0961 0F30             WRMSR                  

Instruction for CPU step 44
F000:0963 B95902         MOV         CX,0259   

Instruction for CPU step 45
F000:0966 0F30             WRMSR                  

Instruction for CPU step 46
F000:0968 B96802         MOV         CX,0268   

Instruction for CPU step 47
F000:096B 0F30             WRMSR                  

Instruction for CPU step 48
F000:096D B96902         MOV         CX,0269   

Instruction for CPU step 49
F000:0970 0F30             WRMSR                  

Instruction for CPU step 50
F000:0972 B96A02         MOV         CX,026a   

Instruction for CPU step 51
F000:0975 0F30             WRMSR                  

Instruction for CPU step 52
F000:0977 B96B02         MOV         CX,026b   

Instruction for CPU step 53
F000:097A 0F30             WRMSR                  

Instruction for CPU step 54
F000:097C B96C02         MOV         CX,026c   

Instruction for CPU step 55
F000:097F 0F30             WRMSR                  

Instruction for CPU step 56
F000:0981 B96D02         MOV         CX,026d   

Instruction for CPU step 57
F000:0984 0F30             WRMSR                  

Instruction for CPU step 58
F000:0986 B96E02         MOV         CX,026e   

Instruction for CPU step 59
F000:0989 0F30             WRMSR                  

Instruction for CPU step 60
F000:098B B96F02         MOV         CX,026f   

Instruction for CPU step 61
F000:098E 0F30             WRMSR                  

Instruction for CPU step 62
F000:0990 D1E3             SAL         BX,1      

Instruction for CPU step 63
F000:0992 B90002         MOV         CX,0200   

Instruction for CPU step 64
F000:0995 4B               DEC         BX         

Instruction for CPU step 65
F000:0996 0F30             WRMSR                  

Instruction for CPU step 66
F000:0998 41               INC         CX         

Instruction for CPU step 67
F000:0999 0BDB             OR          BX,BX      

Instruction for CPU step 68
F000:099B 75F8             JNE         short ptr 0995

Instruction for CPU step 69
F000:0995 4B               DEC         BX         

Instruction for CPU step 70
F000:0996 0F30             WRMSR                  

Instruction for CPU step 71
F000:0998 41               INC         CX         

Instruction for CPU step 72
F000:0999 0BDB             OR          BX,BX      

Instruction for CPU step 73
F000:099B 75F8             JNE         short ptr 0995

Instruction for CPU step 74
F000:0995 4B               DEC         BX         

Instruction for CPU step 75
F000:0996 0F30             WRMSR                  

Instruction for CPU step 76
F000:0998 41               INC         CX         

Instruction for CPU step 77
F000:0999 0BDB             OR          BX,BX      

Instruction for CPU step 78
F000:099B 75F8             JNE         short ptr 0995

Instruction for CPU step 79
F000:0995 4B               DEC         BX         

Instruction for CPU step 80
F000:0996 0F30             WRMSR                  

Instruction for CPU step 81
F000:0998 41               INC         CX         

Instruction for CPU step 82
F000:0999 0BDB             OR          BX,BX      

Instruction for CPU step 83
F000:099B 75F8             JNE         short ptr 0995

Instruction for CPU step 84
F000:0995 4B               DEC         BX         

Instruction for CPU step 85
F000:0996 0F30             WRMSR                  

Instruction for CPU step 86
F000:0998 41               INC         CX         

Instruction for CPU step 87
F000:0999 0BDB             OR          BX,BX      

Instruction for CPU step 88
F000:099B 75F8             JNE         short ptr 0995

Instruction for CPU step 89
F000:0995 4B               DEC         BX         

Instruction for CPU step 90
F000:0996 0F30             WRMSR                  

Instruction for CPU step 91
F000:0998 41               INC         CX         

Instruction for CPU step 92
F000:0999 0BDB             OR          BX,BX      

Instruction for CPU step 93
F000:099B 75F8             JNE         short ptr 0995

Instruction for CPU step 94
F000:0995 4B               DEC         BX         

Instruction for CPU step 95
F000:0996 0F30             WRMSR                  

Instruction for CPU step 96
F000:0998 41               INC         CX         

Instruction for CPU step 97
F000:0999 0BDB             OR          BX,BX      

Instruction for CPU step 98
F000:099B 75F8             JNE         short ptr 0995

Instruction for CPU step 99
F000:0995 4B               DEC         BX         

Instruction for CPU step 100
F000:0996 0F30             WRMSR                  

Instruction for CPU step 101
F000:0998 41               INC         CX         

Instruction for CPU step 102
F000:0999 0BDB             OR          BX,BX      

Instruction for CPU step 103
F000:099B 75F8             JNE         short ptr 0995

Instruction for CPU step 104
F000:0995 4B               DEC         BX

shermanliu 发表于 2009-6-10 13:09:46

哪位大虾能否帮忙解释下以下语句为什么要用两个 JMP ? 为什么不直接 JMP to 0270 ?
Instruction for CPU step 00
F000:FFAA E9C300         JMP         near16 ptr 0070
Instruction for CPU step 01
F000:0070 E9FD01         JMP         near16 ptr 0270

这里也是一样的,不懂为什么要这样做?
Instruction for CPU step 07
F000:027C E957FE         JMP         near16 ptr 00d6
Instruction for CPU step 08
F000:00D6 E9A601         JMP         near16 ptr 027f

qdk0901 发表于 2009-6-12 23:58:41

近跳转只能跳到前后 128byte的地址范围内

childz 发表于 2010-1-16 12:25:39

如果能标上每条语句的作用,那就更好了:lol

childz 发表于 2010-1-16 13:01:30

原帖由 qdk0901 于 2009-6-12 23:58 发表 http://www.ufoit.com/bbs/images/common/back.gif
近跳转只能跳到前后 128byte的地址范围内
-_-!jmp short X----->在ip=ip+8位位移
jmp near ptr X ------>ip=16位位移

[ 本帖最后由 childz 于 2010-1-16 17:14 编辑 ]

childz 发表于 2010-1-16 13:06:57

原帖由 shermanliu 于 2009-6-10 13:09 发表 http://www.ufoit.com/bbs/images/common/back.gif
哪位大虾能否帮忙解释下以下语句为什么要用两个 JMP ? 为什么不直接 JMP to 0270 ?
Instruction for CPU step 00
F000:FFAA E9C300         JMP         near16 ptr 0070
Instruction for CPU step 01
F000:0070 E ...
我的理解是可能为了延迟
楼下继续

xtdumpling 发表于 2010-1-29 13:35:39

个人觉得这个要看源代码才知道。
例如:
jmp_proc macro label
    jmp label
label&End:
endm

xxx_init proc
    jmp xxx_initEnd
xxx_init endp
这里调用就会是上面那样的两个jmp了:
jmp_proc xxx_init

[ 本帖最后由 xtdumpling 于 2010-1-29 13:47 编辑 ]
页: [1]
查看完整版本: CPU Reset 后的前100多条指令