《自己》上的代码:
- org 07c00h
- mov ax , cs
- mov ds , ax
- mov es , ax
- call DispStr
- jmp $
- DispStr:
- mov ax , BootMessage
- mov bp , ax
- mov cx , 8
- mov ax , 01301h
- mov bx , 000eh
- mov dl , 0
- int 10h
- ret
- BootMessage: db "hiPhone!"
- times 510-($-$$) db 0
- dw 0xaa55
nasm boot.asm -o boot.bin
反汇编:
ndisasm boot.bin
后的代码如下:
- 00000000 8CC8 mov ax,cs
- 00000002 8ED8 mov ds,ax
- 00000004 8EC0 mov es,ax
- 00000006 E80200 call word 0xb
- 00000009 EBFE jmp short 0x9
- 0000000B B81E7C mov ax,0x7c1e
- 0000000E 89C5 mov bp,ax
- 00000010 B90800 mov cx,0x8
- 00000013 B80113 mov ax,0x1301
- 00000016 BB0E00 mov bx,0xe
- 00000019 B200 mov dl,0x0
- 0000001B CD10 int 0x10
- 0000001D C3 ret
- 0000001E 686950 push word 0x5069
- 00000021 686F6E push word 0x6e6f
- 00000024 652100 and [gs:bx+si],ax
- 00000027 0000 add [bx+si],al
- 00000029 0000 add [bx+si],al
- 0000002B 0000 add [bx+si],al
- 0000002D 0000 add [bx+si],al
- 0000002F 0000 add [bx+si],al
- 00000031 0000 add [bx+si],al
- 00000033 0000 add [bx+si],al
- 00000035 0000 add [bx+si],al
- 00000037 0000 add [bx+si],al
- 00000039 0000 add [bx+si],al
- 0000003B 0000 add [bx+si],al
- 0000003D 0000 add [bx+si],al
- 0000003F 0000 add [bx+si],al
- 00000041 0000 add [bx+si],al
- 00000043 0000 add [bx+si],al
- 00000045 0000 add [bx+si],al
- 00000047 0000 add [bx+si],al
- 00000049 0000 add [bx+si],al
- 0000004B 0000 add [bx+si],al
- 0000004D 0000 add [bx+si],al
- 0000004F 0000 add [bx+si],al
- 00000051 0000 add [bx+si],al
- 00000053 0000 add [bx+si],al
- 00000055 0000 add [bx+si],al
- 00000057 0000 add [bx+si],al
- 00000059 0000 add [bx+si],al
- 0000005B 0000 add [bx+si],al
- 0000005D 0000 add [bx+si],al
- 0000005F 0000 add [bx+si],al
- 00000061 0000 add [bx+si],al
- 00000063 0000 add [bx+si],al
- 00000065 0000 add [bx+si],al
- 00000067 0000 add [bx+si],al
- 00000069 0000 add [bx+si],al
- 0000006B 0000 add [bx+si],al
- 0000006D 0000 add [bx+si],al
- 0000006F 0000 add [bx+si],al
- 00000071 0000 add [bx+si],al
- 00000073 0000 add [bx+si],al
- 00000075 0000 add [bx+si],al
- 00000077 0000 add [bx+si],al
- 00000079 0000 add [bx+si],al
- 0000007B 0000 add [bx+si],al
- 0000007D 0000 add [bx+si],al
- 0000007F 0000 add [bx+si],al
- 00000081 0000 add [bx+si],al
- 00000083 0000 add [bx+si],al
- 00000085 0000 add [bx+si],al
- 00000087 0000 add [bx+si],al
- 00000089 0000 add [bx+si],al
- 0000008B 0000 add [bx+si],al
- 0000008D 0000 add [bx+si],al
- 0000008F 0000 add [bx+si],al
- 00000091 0000 add [bx+si],al
- 00000093 0000 add [bx+si],al
- 00000095 0000 add [bx+si],al
- 00000097 0000 add [bx+si],al
- 00000099 0000 add [bx+si],al
- 0000009B 0000 add [bx+si],al
- 0000009D 0000 add [bx+si],al
- 0000009F 0000 add [bx+si],al
- 000000A1 0000 add [bx+si],al
- 000000A3 0000 add [bx+si],al
- 000000A5 0000 add [bx+si],al
- 000000A7 0000 add [bx+si],al
- 000000A9 0000 add [bx+si],al
- 000000AB 0000 add [bx+si],al
- 000000AD 0000 add [bx+si],al
- 000000AF 0000 add [bx+si],al
- 000000B1 0000 add [bx+si],al
- 000000B3 0000 add [bx+si],al
- 000000B5 0000 add [bx+si],al
- 000000B7 0000 add [bx+si],al
- 000000B9 0000 add [bx+si],al
- 000000BB 0000 add [bx+si],al
- 000000BD 0000 add [bx+si],al
- 000000BF 0000 add [bx+si],al
- 000000C1 0000 add [bx+si],al
- 000000C3 0000 add [bx+si],al
- 000000C5 0000 add [bx+si],al
- 000000C7 0000 add [bx+si],al
- 000000C9 0000 add [bx+si],al
- 000000CB 0000 add [bx+si],al
- 000000CD 0000 add [bx+si],al
- 000000CF 0000 add [bx+si],al
- 000000D1 0000 add [bx+si],al
- 000000D3 0000 add [bx+si],al
- 000000D5 0000 add [bx+si],al
- 000000D7 0000 add [bx+si],al
- 000000D9 0000 add [bx+si],al
- 000000DB 0000 add [bx+si],al
- 000000DD 0000 add [bx+si],al
- 000000DF 0000 add [bx+si],al
- 000000E1 0000 add [bx+si],al
- 000000E3 0000 add [bx+si],al
- 000000E5 0000 add [bx+si],al
- 000000E7 0000 add [bx+si],al
- 000000E9 0000 add [bx+si],al
- 000000EB 0000 add [bx+si],al
- 000000ED 0000 add [bx+si],al
- 000000EF 0000 add [bx+si],al
- 000000F1 0000 add [bx+si],al
- 000000F3 0000 add [bx+si],al
- 000000F5 0000 add [bx+si],al
- 000000F7 0000 add [bx+si],al
- 000000F9 0000 add [bx+si],al
- 000000FB 0000 add [bx+si],al
- 000000FD 0000 add [bx+si],al
- 000000FF 0000 add [bx+si],al
- 00000101 0000 add [bx+si],al
- 00000103 0000 add [bx+si],al
- 00000105 0000 add [bx+si],al
- 00000107 0000 add [bx+si],al
- 00000109 0000 add [bx+si],al
- 0000010B 0000 add [bx+si],al
- 0000010D 0000 add [bx+si],al
- 0000010F 0000 add [bx+si],al
- 00000111 0000 add [bx+si],al
- 00000113 0000 add [bx+si],al
- 00000115 0000 add [bx+si],al
- 00000117 0000 add [bx+si],al
- 00000119 0000 add [bx+si],al
- 0000011B 0000 add [bx+si],al
- 0000011D 0000 add [bx+si],al
- 0000011F 0000 add [bx+si],al
- 00000121 0000 add [bx+si],al
- 00000123 0000 add [bx+si],al
- 00000125 0000 add [bx+si],al
- 00000127 0000 add [bx+si],al
- 00000129 0000 add [bx+si],al
- 0000012B 0000 add [bx+si],al
- 0000012D 0000 add [bx+si],al
- 0000012F 0000 add [bx+si],al
- 00000131 0000 add [bx+si],al
- 00000133 0000 add [bx+si],al
- 00000135 0000 add [bx+si],al
- 00000137 0000 add [bx+si],al
- 00000139 0000 add [bx+si],al
- 0000013B 0000 add [bx+si],al
- 0000013D 0000 add [bx+si],al
- 0000013F 0000 add [bx+si],al
- 00000141 0000 add [bx+si],al
- 00000143 0000 add [bx+si],al
- 00000145 0000 add [bx+si],al
- 00000147 0000 add [bx+si],al
- 00000149 0000 add [bx+si],al
- 0000014B 0000 add [bx+si],al
- 0000014D 0000 add [bx+si],al
- 0000014F 0000 add [bx+si],al
- 00000151 0000 add [bx+si],al
- 00000153 0000 add [bx+si],al
- 00000155 0000 add [bx+si],al
- 00000157 0000 add [bx+si],al
- 00000159 0000 add [bx+si],al
- 0000015B 0000 add [bx+si],al
- 0000015D 0000 add [bx+si],al
- 0000015F 0000 add [bx+si],al
- 00000161 0000 add [bx+si],al
- 00000163 0000 add [bx+si],al
- 00000165 0000 add [bx+si],al
- 00000167 0000 add [bx+si],al
- 00000169 0000 add [bx+si],al
- 0000016B 0000 add [bx+si],al
- 0000016D 0000 add [bx+si],al
- 0000016F 0000 add [bx+si],al
- 00000171 0000 add [bx+si],al
- 00000173 0000 add [bx+si],al
- 00000175 0000 add [bx+si],al
- 00000177 0000 add [bx+si],al
- 00000179 0000 add [bx+si],al
- 0000017B 0000 add [bx+si],al
- 0000017D 0000 add [bx+si],al
- 0000017F 0000 add [bx+si],al
- 00000181 0000 add [bx+si],al
- 00000183 0000 add [bx+si],al
- 00000185 0000 add [bx+si],al
- 00000187 0000 add [bx+si],al
- 00000189 0000 add [bx+si],al
- 0000018B 0000 add [bx+si],al
- 0000018D 0000 add [bx+si],al
- 0000018F 0000 add [bx+si],al
- 00000191 0000 add [bx+si],al
- 00000193 0000 add [bx+si],al
- 00000195 0000 add [bx+si],al
- 00000197 0000 add [bx+si],al
- 00000199 0000 add [bx+si],al
- 0000019B 0000 add [bx+si],al
- 0000019D 0000 add [bx+si],al
- 0000019F 0000 add [bx+si],al
- 000001A1 0000 add [bx+si],al
- 000001A3 0000 add [bx+si],al
- 000001A5 0000 add [bx+si],al
- 000001A7 0000 add [bx+si],al
- 000001A9 0000 add [bx+si],al
- 000001AB 0000 add [bx+si],al
- 000001AD 0000 add [bx+si],al
- 000001AF 0000 add [bx+si],al
- 000001B1 0000 add [bx+si],al
- 000001B3 0000 add [bx+si],al
- 000001B5 0000 add [bx+si],al
- 000001B7 0000 add [bx+si],al
- 000001B9 0000 add [bx+si],al
- 000001BB 0000 add [bx+si],al
- 000001BD 0000 add [bx+si],al
- 000001BF 0000 add [bx+si],al
- 000001C1 0000 add [bx+si],al
- 000001C3 0000 add [bx+si],al
- 000001C5 0000 add [bx+si],al
- 000001C7 0000 add [bx+si],al
- 000001C9 0000 add [bx+si],al
- 000001CB 0000 add [bx+si],al
- 000001CD 0000 add [bx+si],al
- 000001CF 0000 add [bx+si],al
- 000001D1 0000 add [bx+si],al
- 000001D3 0000 add [bx+si],al
- 000001D5 0000 add [bx+si],al
- 000001D7 0000 add [bx+si],al
- 000001D9 0000 add [bx+si],al
- 000001DB 0000 add [bx+si],al
- 000001DD 0000 add [bx+si],al
- 000001DF 0000 add [bx+si],al
- 000001E1 0000 add [bx+si],al
- 000001E3 0000 add [bx+si],al
- 000001E5 0000 add [bx+si],al
- 000001E7 0000 add [bx+si],al
- 000001E9 0000 add [bx+si],al
- 000001EB 0000 add [bx+si],al
- 000001ED 0000 add [bx+si],al
- 000001EF 0000 add [bx+si],al
- 000001F1 0000 add [bx+si],al
- 000001F3 0000 add [bx+si],al
- 000001F5 0000 add [bx+si],al
- 000001F7 0000 add [bx+si],al
- 000001F9 0000 add [bx+si],al
- 000001FB 0000 add [bx+si],al
- 000001FD 0055AA add [di-0x56],dl
注意:数据部分
0000001E 686950 push word 0x5069
00000021 686F6E push word 0x6e6f
00000024 652100 and [gs:bx+si],ax
......
000001FD 0055AA add [di-0x56],dl
是
0000001E 686950
00000021 686F6E
00000024 652100 //到21结束, 00位结束串的标志。
......
000001FD 0055AA
对应
BootMessage: db "hiPhone!"
dw 0xaa55
2.
自己写的引导代码。
- mov ax , 07c0h
- mov ds , ax
- mov es , ax
- call DispStr
- jmp $
- DispStr:
- mov ax , BootMessage
- mov bp , ax
- mov cx , 8
- mov ax , 01301h
- mov bx , 000eh
- mov dl , 0
- int 10h
- ret
- BootMessage: db "hiPhone!"
- times 510-($-$$) db 0
- dw 0xaa55
反汇编后的代码:
- 00000000 B8C007 mov ax,0x7c0
- 00000003 8ED8 mov ds,ax
- 00000005 8EC0 mov es,ax
- 00000007 E80200 call word 0xc
- 0000000A EBFE jmp short 0xa
- 0000000C B81F00 mov ax,0x1f
- 0000000F 89C5 mov bp,ax
- 00000011 B90800 mov cx,0x8
- 00000014 B80113 mov ax,0x1301
- 00000017 BB0E00 mov bx,0xe
- 0000001A B200 mov dl,0x0
- 0000001C CD10 int 0x10
- 0000001E C3 ret
- 0000001F 686950 push word 0x5069
- 00000022 686F6E push word 0x6e6f
- 00000025 652100 and [gs:bx+si],ax
- 00000028 0000 add [bx+si],al
- 0000002A 0000 add [bx+si],al
- 0000002C 0000 add [bx+si],al
- 0000002E 0000 add [bx+si],al
- 00000030 0000 add [bx+si],al
- 00000032 0000 add [bx+si],al
- 00000034 0000 add [bx+si],al
- 00000036 0000 add [bx+si],al
- 00000038 0000 add [bx+si],al
- 0000003A 0000 add [bx+si],al
- 0000003C 0000 add [bx+si],al
- 0000003E 0000 add [bx+si],al
- 00000040 0000 add [bx+si],al
- 00000042 0000 add [bx+si],al
- 00000044 0000 add [bx+si],al
- 00000046 0000 add [bx+si],al
- 00000048 0000 add [bx+si],al
- 0000004A 0000 add [bx+si],al
- 0000004C 0000 add [bx+si],al
- 0000004E 0000 add [bx+si],al
- 00000050 0000 add [bx+si],al
- 00000052 0000 add [bx+si],al
- 00000054 0000 add [bx+si],al
- 00000056 0000 add [bx+si],al
- 00000058 0000 add [bx+si],al
- 0000005A 0000 add [bx+si],al
- 0000005C 0000 add [bx+si],al
- 0000005E 0000 add [bx+si],al
- 00000060 0000 add [bx+si],al
- 00000062 0000 add [bx+si],al
- 00000064 0000 add [bx+si],al
- 00000066 0000 add [bx+si],al
- 00000068 0000 add [bx+si],al
- 0000006A 0000 add [bx+si],al
- 0000006C 0000 add [bx+si],al
- 0000006E 0000 add [bx+si],al
- 00000070 0000 add [bx+si],al
- 00000072 0000 add [bx+si],al
- 00000074 0000 add [bx+si],al
- 00000076 0000 add [bx+si],al
- 00000078 0000 add [bx+si],al
- 0000007A 0000 add [bx+si],al
- 0000007C 0000 add [bx+si],al
- 0000007E 0000 add [bx+si],al
- 00000080 0000 add [bx+si],al
- 00000082 0000 add [bx+si],al
- 00000084 0000 add [bx+si],al
- 00000086 0000 add [bx+si],al
- 00000088 0000 add [bx+si],al
- 0000008A 0000 add [bx+si],al
- 0000008C 0000 add [bx+si],al
- 0000008E 0000 add [bx+si],al
- 00000090 0000 add [bx+si],al
- 00000092 0000 add [bx+si],al
- 00000094 0000 add [bx+si],al
- 00000096 0000 add [bx+si],al
- 00000098 0000 add [bx+si],al
- 0000009A 0000 add [bx+si],al
- 0000009C 0000 add [bx+si],al
- 0000009E 0000 add [bx+si],al
- 000000A0 0000 add [bx+si],al
- 000000A2 0000 add [bx+si],al
- 000000A4 0000 add [bx+si],al
- 000000A6 0000 add [bx+si],al
- 000000A8 0000 add [bx+si],al
- 000000AA 0000 add [bx+si],al
- 000000AC 0000 add [bx+si],al
- 000000AE 0000 add [bx+si],al
- 000000B0 0000 add [bx+si],al
- 000000B2 0000 add [bx+si],al
- 000000B4 0000 add [bx+si],al
- 000000B6 0000 add [bx+si],al
- 000000B8 0000 add [bx+si],al
- 000000BA 0000 add [bx+si],al
- 000000BC 0000 add [bx+si],al
- 000000BE 0000 add [bx+si],al
- 000000C0 0000 add [bx+si],al
- 000000C2 0000 add [bx+si],al
- 000000C4 0000 add [bx+si],al
- 000000C6 0000 add [bx+si],al
- 000000C8 0000 add [bx+si],al
- 000000CA 0000 add [bx+si],al
- 000000CC 0000 add [bx+si],al
- 000000CE 0000 add [bx+si],al
- 000000D0 0000 add [bx+si],al
- 000000D2 0000 add [bx+si],al
- 000000D4 0000 add [bx+si],al
- 000000D6 0000 add [bx+si],al
- 000000D8 0000 add [bx+si],al
- 000000DA 0000 add [bx+si],al
- 000000DC 0000 add [bx+si],al
- 000000DE 0000 add [bx+si],al
- 000000E0 0000 add [bx+si],al
- 000000E2 0000 add [bx+si],al
- 000000E4 0000 add [bx+si],al
- 000000E6 0000 add [bx+si],al
- 000000E8 0000 add [bx+si],al
- 000000EA 0000 add [bx+si],al
- 000000EC 0000 add [bx+si],al
- 000000EE 0000 add [bx+si],al
- 000000F0 0000 add [bx+si],al
- 000000F2 0000 add [bx+si],al
- 000000F4 0000 add [bx+si],al
- 000000F6 0000 add [bx+si],al
- 000000F8 0000 add [bx+si],al
- 000000FA 0000 add [bx+si],al
- 000000FC 0000 add [bx+si],al
- 000000FE 0000 add [bx+si],al
- 00000100 0000 add [bx+si],al
- 00000102 0000 add [bx+si],al
- 00000104 0000 add [bx+si],al
- 00000106 0000 add [bx+si],al
- 00000108 0000 add [bx+si],al
- 0000010A 0000 add [bx+si],al
- 0000010C 0000 add [bx+si],al
- 0000010E 0000 add [bx+si],al
- 00000110 0000 add [bx+si],al
- 00000112 0000 add [bx+si],al
- 00000114 0000 add [bx+si],al
- 00000116 0000 add [bx+si],al
- 00000118 0000 add [bx+si],al
- 0000011A 0000 add [bx+si],al
- 0000011C 0000 add [bx+si],al
- 0000011E 0000 add [bx+si],al
- 00000120 0000 add [bx+si],al
- 00000122 0000 add [bx+si],al
- 00000124 0000 add [bx+si],al
- 00000126 0000 add [bx+si],al
- 00000128 0000 add [bx+si],al
- 0000012A 0000 add [bx+si],al
- 0000012C 0000 add [bx+si],al
- 0000012E 0000 add [bx+si],al
- 00000130 0000 add [bx+si],al
- 00000132 0000 add [bx+si],al
- 00000134 0000 add [bx+si],al
- 00000136 0000 add [bx+si],al
- 00000138 0000 add [bx+si],al
- 0000013A 0000 add [bx+si],al
- 0000013C 0000 add [bx+si],al
- 0000013E 0000 add [bx+si],al
- 00000140 0000 add [bx+si],al
- 00000142 0000 add [bx+si],al
- 00000144 0000 add [bx+si],al
- 00000146 0000 add [bx+si],al
- 00000148 0000 add [bx+si],al
- 0000014A 0000 add [bx+si],al
- 0000014C 0000 add [bx+si],al
- 0000014E 0000 add [bx+si],al
- 00000150 0000 add [bx+si],al
- 00000152 0000 add [bx+si],al
- 00000154 0000 add [bx+si],al
- 00000156 0000 add [bx+si],al
- 00000158 0000 add [bx+si],al
- 0000015A 0000 add [bx+si],al
- 0000015C 0000 add [bx+si],al
- 0000015E 0000 add [bx+si],al
- 00000160 0000 add [bx+si],al
- 00000162 0000 add [bx+si],al
- 00000164 0000 add [bx+si],al
- 00000166 0000 add [bx+si],al
- 00000168 0000 add [bx+si],al
- 0000016A 0000 add [bx+si],al
- 0000016C 0000 add [bx+si],al
- 0000016E 0000 add [bx+si],al
- 00000170 0000 add [bx+si],al
- 00000172 0000 add [bx+si],al
- 00000174 0000 add [bx+si],al
- 00000176 0000 add [bx+si],al
- 00000178 0000 add [bx+si],al
- 0000017A 0000 add [bx+si],al
- 0000017C 0000 add [bx+si],al
- 0000017E 0000 add [bx+si],al
- 00000180 0000 add [bx+si],al
- 00000182 0000 add [bx+si],al
- 00000184 0000 add [bx+si],al
- 00000186 0000 add [bx+si],al
- 00000188 0000 add [bx+si],al
- 0000018A 0000 add [bx+si],al
- 0000018C 0000 add [bx+si],al
- 0000018E 0000 add [bx+si],al
- 00000190 0000 add [bx+si],al
- 00000192 0000 add [bx+si],al
- 00000194 0000 add [bx+si],al
- 00000196 0000 add [bx+si],al
- 00000198 0000 add [bx+si],al
- 0000019A 0000 add [bx+si],al
- 0000019C 0000 add [bx+si],al
- 0000019E 0000 add [bx+si],al
- 000001A0 0000 add [bx+si],al
- 000001A2 0000 add [bx+si],al
- 000001A4 0000 add [bx+si],al
- 000001A6 0000 add [bx+si],al
- 000001A8 0000 add [bx+si],al
- 000001AA 0000 add [bx+si],al
- 000001AC 0000 add [bx+si],al
- 000001AE 0000 add [bx+si],al
- 000001B0 0000 add [bx+si],al
- 000001B2 0000 add [bx+si],al
- 000001B4 0000 add [bx+si],al
- 000001B6 0000 add [bx+si],al
- 000001B8 0000 add [bx+si],al
- 000001BA 0000 add [bx+si],al
- 000001BC 0000 add [bx+si],al
- 000001BE 0000 add [bx+si],al
- 000001C0 0000 add [bx+si],al
- 000001C2 0000 add [bx+si],al
- 000001C4 0000 add [bx+si],al
- 000001C6 0000 add [bx+si],al
- 000001C8 0000 add [bx+si],al
- 000001CA 0000 add [bx+si],al
- 000001CC 0000 add [bx+si],al
- 000001CE 0000 add [bx+si],al
- 000001D0 0000 add [bx+si],al
- 000001D2 0000 add [bx+si],al
- 000001D4 0000 add [bx+si],al
- 000001D6 0000 add [bx+si],al
- 000001D8 0000 add [bx+si],al
- 000001DA 0000 add [bx+si],al
- 000001DC 0000 add [bx+si],al
- 000001DE 0000 add [bx+si],al
- 000001E0 0000 add [bx+si],al
- 000001E2 0000 add [bx+si],al
- 000001E4 0000 add [bx+si],al
- 000001E6 0000 add [bx+si],al
- 000001E8 0000 add [bx+si],al
- 000001EA 0000 add [bx+si],al
- 000001EC 0000 add [bx+si],al
- 000001EE 0000 add [bx+si],al
- 000001F0 0000 add [bx+si],al
- 000001F2 0000 add [bx+si],al
- 000001F4 0000 add [bx+si],al
- 000001F6 0000 add [bx+si],al
- 000001F8 0000 add [bx+si],al
- 000001FA 0000 add [bx+si],al
- 000001FC 0000 add [bx+si],al
- 000001FE 55 push bp
- 000001FF AA stosb
两者的不同在于:
mov ax , BootMessage
的编译结果
前者编译为
0000000B B81E7C mov ax,0x7c1e
后者为
0000000C B81F00 mov ax,0x1f
前在汇编时 +上了org指定的0x7c00,ds值为0。 而后者只有偏移, 运行时和ds中的0x7c0h共同使用。
结果是一样的, 都是引用字符串"hiPhone!"。