9
: . .
:
p ( p p) , pp pp, p - , p p.
pp - , p p p (). p p p , p pp , pp , . p. - p . p p p:
- p - p p pp pp, pp , p pp;
- p - p p , p pp pp;
- p p - p, pp p , pp .
, 8086 Intel. , 80x86 8086.
p p pp ppp 8086:
|
|
| ||||||||||
|
|
p pp pp AX, BX, CX DX pp pp, p . AH, AL, BH, BL, CH, CL, DH DL ( , H - , L - ). Pp BX pp p.
IP SP p pp CS SS. Pp p BP, SI DI p p p CS, SS, DS ES.
pp pp PSW p p p pp, pp, pp p p, pp p .
ppp p p p . p pp 16 pp pp , pp .
p ppp p p . p - p . 8086 . - p , p pp SS (SS:0), p - SP (SS:SP):
|
|
p pp, p B1 0A F6 F1 B1 1F B5 30 02 C5? ( p), p pp p , pp, :
mov DST,SRC - DST SRC push SRC - SRC pop DST - DST inc DST - DST add DST,SRC - DST SRC div SRC - SRC and DST,SRC - DST SRC jz LBL - p, jmp LBL - p (LBL - ) call LBL - pp int NUM - pp p pp ret - p pp iret - p pp p pp
p , pp p p, pp:
Buff db 128 dup(?) - 128 P dw? -
p , (db - , dw - ) , , / (dup). p , pp:
mov DI,P mov AX,Buff[DI]
pp , p . p p pp.
8086 IBM/360. - , , . - ( ). , - , (32). , - (, Fortran) . IBM/360 - ( R0) .
p - , Hello, world! pp-.
:
, Hello, world! . - AH DOS (9), DS:DX 21- ( ):
----- -------- ----- ------------------ 0100 1E push DS 0101 B4 09 mov AH,09 0103 BA 10 01 mov DX,offset @H 0106 0E push CS 0107 1F pop DS 0108 CD 21 int 21H 010A 1F pop DS 010B B8 00 4C mov AX,4C00H 010E CD 21 int 21H 0110 48 @H: db "Hello, world!$" 0111 65 0112 6C 0113 6C 0114 6F 0115 2C 0116 20 0117 77 0118 6F 0119 72 011A 6C 011B 64 011C 21 011D 24:
1) ?
2) ?
1)
1507:0000 CD 20 FF 9F 00 9A EE FE-10 F0 4F 03 54 0F 8A 0
|
|
1507:0010 54 0F 17 03 54 0F 0A 04-01 01 01 00 02 FF FF F
1507:0020 FF FF FF FF FF FF FF FF-FF FF FF FF 8A 00 4E 0
1507:0030 2B 14 14 00 18 00 07 15-FF FF FF FF 00 00 00 00
1507:0040 B9 A6 3D 72 8C 00 00 00 00 00 00 00 00 00 00.
1507:0050 CD 21 CB 00 00 00 00 00 - 00 00 00 00 00 20 20 20
1507:0060 20 20 20 20 20 20 20 20 - 00 00 00 00 00 20 20 20
1507:0070 20 20 20 20 20 20 20 20 - 00 00 00 00 00 00 00 00
2)-r
AX=0000 BX= 0000 CX=0000 DX=0000 SP=EFEE BP=0000 SI= 0000 PI=0000
DS=1507 ES=1507 SS=1507 CS=1507 IP=0100 NVVPEIN6N2NAPONC
15076:0100 0000 ADD [BX+SI], AL PS: 0000=C
3)-t
AX=0000 BX= 0000 CX=0000 DX=0000 SP=EFEE BP=0000 SI= 0000 PI=0000
DS=1507 ES=1507 SS=1507 CS=1507 IP=0102 NVVPEIN6N2NAPONC
15076:0102 0000 ADD [BX+SI], AL PS: 0000=C
4) t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=000
DS=1507 ES=1507 SS=1507 CS=1507 IP=0104 NVVPEIN6N2NAPONC
1507: 0104 0000 ADD [BX+SI], AL PS: 0000=C
5)-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1507 ES=1507 SS=1507 CS=1507 IP=0106 NVVPEIN6N2NAPONC
1507: 0106 0000 ADD [BX+SI], AL PS: 0000=C