Professional Documents
Culture Documents
Assembly Zeynolabedini
Assembly Zeynolabedini
org
:
:
-1 - 8086 ) (
-2 - :
-3 - - -
-4 - -
.
:
PC )(hardware programming : ) C (
:
:
. .
) (CPU .
:
www.ParsBook.org
www.ParsBook.org
1,0 .
(, X86, Apple) .
) C (
low level
.
: .
.
)(
: CPU CPU
.
www.ParsBook.org
www.ParsBook.org
.
.
(CPU Instruction set) CPU
. Intel down ward-compatible .
8086 80286 80386
:
: n
: m
az,a1,a0 ...
: b
)(
)(
www.ParsBook.org
www.ParsBook.org
16 10 15 A F
(11001)2=25 :
) (
: 10 2
2 . 2
2 . 2
.
:
.
.
www.ParsBook.org
www.ParsBook.org
: 8 3 4 4
.
2 : 16
10 :
111
11111
11110 +
111101
0 + 1 = 1
1 + 0 = 1
0 + 0 = 0
1 + 1 = 10
:
.
:
- 2 -1 -2
0-255 byte 8
word 16 0-65535
Double word
16) 2 32 64 ( ... .
.
www.ParsBook.org
0-2-1
www.ParsBook.org
19 8
: :
-1 - .
-2 1
-3 2
:
19
10010011
-19
:
-1 .
00000
10000
-2 .
M :
-1) -1
(-1) -2
( 2
: 1
. 8
.
00000
11111
: 2 :
-1 -2 1 -3
www.ParsBook.org
www.ParsBook.org
} 1
,2
{2
: - ALU
ALU CPU
.
: ,-
.
:
www.ParsBook.org
www.ParsBook.org
-1 -
.
-2 - CPU
.
-3 RD -
CPU WR - .
:
.
:
16 80286,8088,8086
32 80486,80386
:
CPU ]) [Execution Unit (EU [Bus
]) INTerface unit (BIU . EU
ALU .
) (BIU
BIU .
Prefetih
.
BIU
EU
www.ParsBook.org
www.ParsBook.org
IP
CS
DS
SS
ES
AH
BH
CH
DH
AL
BL
CL
DL
SP
BP
SI
DI
.
.
.
.
N
ALU
16 :
.
AX
www.ParsBook.org
www.ParsBook.org
BX
:
: Ax .
AL
AX
AH
: Bx
0
8 7
BL
15
BX
BH
: Cx
.
CH
CL
CX
: Dx
.
0
8 7
DL
15
DH
DX
: 16 .
64k . :
-1 Code segment
-2 Data segment
www.ParsBook.org
www.ParsBook.org
-3 Stack segment
-4 Extra segment
: 64k
Cs
:
DS .
: .
. SS .
: .
Es .
:
16
.
Es,Cs,Ds,SS
.
Ss
Ds
Cs
Es
www.ParsBook.org
www.ParsBook.org
2403 :
0026 . :
24030
0026
24056
CS : IP .
CS : IP 3142 : 0025 31420
0025 . ] MOV AX,[0032H
:
www.ParsBook.org
www.ParsBook.org
A0 00 32
.
) HI-byte (HI-Address
32
2131 2130
fa
Fa
32
BA4286
www.ParsBook.org
www.ParsBook.org
16
. 64k
.
SS=313AH 21 2
) 16 ( .
24 . 313c
.
DEBUG.COM
www.ParsBook.org
www.ParsBook.org
.
.
C:\>debug :
Debug enter - .
.
Q .
:
) (R CPU .
:
> < R
.
R :
C:\>Debug
-r
Ax=0000 Bx=000 Cx=0000 Dx=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AEA Es=0AEA SS=0AEA IP=0100 NV UP DI PL NZ NA PO NC
MOV Ax , 000l
B80100
OAEA : 0100
.
.
. CS : IP .
www.ParsBook.org
www.ParsBook.org
.
.
R
.
:
.
.
CPU
. 8086
MASM . TASA .
DOS
.
: MOV
. :
MOV destination , Source
:
www.ParsBook.org
www.ParsBook.org
Ax
Bx
Ax,Bx
MOV
) (Bx )(Ax
Ax Bx .
MOV AL , 37H ; AL=37H
) (Bx .
MOV AH , AL ; AH=37H
MOV BX , FC32H ; BX=FC32H
MOV DX , BX ; DX=BX=FC32H
MOV BP , DX ; BP=DX=FC32H
MOV DI , BP ; DI=BP=FC32H
.
; MOV AL,Dx
; MOV FR,Dx
; MOV Ds,FCFAH
:
SS,ES,DS,CS
.
MOV AX,2312H
MOV DS,2312H
MOV DS,AX
: ADD :
;ADD destination, source
www.ParsBook.org
www.ParsBook.org
2F
3A
AL+BL
ADD AL, BL ; AL
.
.
:
.
: A
:
> < A
.
.
A OAEF:100
A 200
.
.
.
.
www.ParsBook.org
www.ParsBook.org
:
) (TASM=MASM .
H .
-A 100
132F : 0100 MOV Bx,3
132F : 0103 MOV Ax,4
132F : 0106 MOV Cx,5
132F : 0109 Add Ax , Cx
132F : 010B Add Ax,Bx
132F : 010D INT 3
132F : 010E
:
MOV Ax,AB4F
MOV Ax,AB4F H
www.ParsBook.org
www.ParsBook.org
)( ) 10 D( -U 100
) LD( U 100
103D :0100
103D : 0103
103D : 0106
ADD Ax,CX
01C8
103D : 0109
ADD Ax,Bx
01D8
103D : 010B
INT 3
CC
103D : 010D
U 32 CS : IP . U
32 32
.
) : (G
:
> < > =< G
:
-1 - CS : IP
INT3 .
.
010D 0AEf INT3 .
www.ParsBook.org
www.ParsBook.org
-R
Ax=0000 Bx=0000
DS=0AEF Es=0000 SS=0000 CS = 0000 IP=0100
0AEF = 0100 BC=300 MOV Bx,0003
-g
Ax=000C Bx=0003 Cx=0005 Px=0000
Ds=000C Bs=0003 SS=0005 IP=010D
0Aef=010D CC INT 3
2 = G
.
G=0Aef 0100
G=100
3 = G
G
-G 109
Ax=0004 Bx=0003 Cx=0005
ADD AX,CX
103D:0109 , 01CS
.
CS:IP .
)( .
www.ParsBook.org
www.ParsBook.org
-1 :
.
-2 :
.
-3 : .
5 :
MOV AL,00H
Add AL,36H
Add AL,2CH
Add AL,3FH
Add AL,9CH
Add AL,1BH
.
.
)( 300H DS
. :
DS:0300=36 MOV AL,0
]ADD AL,[0300
www.ParsBook.org
DS:0301=2C
www.ParsBook.org
]ADD AL,[0301
DS:0302=3F
]ADD AL,[0302
DS:0303=9C
]ADD AL,[0303
DS:0304=1B
]ADD AL,[0304
. .
)( 300
: 8086.
DI,SI,BX .
www.ParsBook.org
www.ParsBook.org
INC Bx
]ADD AL,[Bx
8086 HI-byteHI-address
. 16 .
. :
MOV Dx, 3BCA
MOV [1700],Bx
DS:1700=CA
DS:1701=3B
: T
:
> < > = <T
T=100 5 100 5 .
.
CS:IP .
G T
G .
T
. T .
Ctrl+Numlock .
.
www.ParsBook.org
www.ParsBook.org
T=100 5
INT3
: 8086
.
) ( . .
cpu )(
. 8086 :
-1
-2
-3
-4
-5
-6
-7
-1 :
.
.
MOV Ax,Bx
MOV ES,Cx
www.ParsBook.org
www.ParsBook.org
ADD AL,DL
-2 : .
CPU .
.
B90500
MOV Bx,0003
CPU
CPU .
.
-3 :
. .
. .
)( .
DS
DS:1300 CL
CL,[1300] :
MOV
CL 16 1300
DS:1300 CL .
32 H 1244:2342 .
MOV BL,32H
MOV [2342],BL
www.ParsBook.org
www.ParsBook.org
DS=1244
12440
2342
14782
-4 :
.
Bx,DI,SI ) ( .
DS:BX CL
;)MOV CL,(BX
DS:SI CL
MOV CL,(SI),
DS:DI AL
;MOV (DI),AL
;MOV (SI),BX
Byte HI-Address
-5 : .
Bx BP
. DS,Bx SS BP .
MOV Ax,[Bx]+15 Bx+15 . DS0
BX
12210
15+
DS:BX+15
18FC
DS:BX+15+1
15
13B1C
AL
AH
www.ParsBook.org
www.ParsBook.org
Ds:Bx+15 Ds:Bx+15+1 Ax
. AL AH .
]MOV Ax,[Bx+15
]MOV Ax,15[Bx
=BP+6
MOV CL,[BP]+6
]MOV CL,[BP+6
]MOV CL,6 [BP
-6 :
SI,DI .
= DS 0 +SI+20 ; MOV Dx,[SI]+20
= DS 0 +DI+32 ; MOV AL,[DI]+32
DS .
:
.
. DS,BX SS,BP.
=DS0+BX+SI+16
;MOV AL,[BX][SI]+16
;]MOV AL,[BX+SI+16
;MOV AH,[BX][DI]+5
=DS0+BX+DI+5
;]MOV AH,[BX+DI+5
=SS0+BP+DI+6
;MOV BL,[BP][DI]+6
=SS0+BP+SI+30
;MOV BH,[BP][SI]+30
www.ParsBook.org
www.ParsBook.org
reg
data
DS
][offset
DS
][Bx
DS
][SI
DS
][DI
DS
[Bx]+disp
SS
[BP]+disp
DS
[DI]+disp
DS
[SI]+disp
DS
[Bx][SI]+disp
DS
[Bx][DI]+disp
SS
[BP][SI]+disp
SS
[BP][DI]+disp
:
SS
ES
DS
www.ParsBook.org
CS
www.ParsBook.org
SP,BP
SI,DI,Bx
SI,DI,Bx
: IP
.
16 10 .
] MOV AL,[BP SS:BP
] MOV AL,CS : [BP
CS : BP SS : BP AL .
DS:BX+DI+30
SS:BX+DI+30
MOV SS:[BX][DI]+30,AX
SS:BP+20
ES:BP+20
MOV Dx,ES:[BP]+20
:
:
: F .
: D .
: E .
Fill .
:
> < > < > < F
> < > > < L < F
www.ParsBook.org
www.ParsBook.org
.
.
DS:100 DS:10F FF .
-F 100 10F FF
CS:100 256) CS:1FF( 20
F CS:100 1FF 20
00FF 20H ) 32(
DS:100 00FF .
Dump D :
:
> < > < -D
> > <L < -D
D 16
. .
D 128 DS:100 D
128 .
10F
20 20 .. 20
112A:0100
20
11F
20 20 .. 20
112A:0110
-F 150 19F 00
14f
20 20 20
112A:0140
-D 100 19F
15F
00 00 00
112A:0150
www.ParsBook.org
-F 100 14F
www.ParsBook.org
19F
00 00 00
112A:0190
Dump
U Dump
.
100
-U
11E
1232:
MOV
0102 B686
1232:
MOV DL,72
0104 B272
1232:
DH,86
0106
-D CS:100 11F
72.OW6.2r.R.Q.G39
B2
86
B6
y.5t..ce.t.sv
57
D9
B0
1231:0100
1232:0110 01
" ". .
E :
F
. :
> < ><-E
www.ParsBook.org
><-E
www.ParsBook.org
-E
-D 100 10f
113D:0100 4A 6F 68 6E 20 53 6E 69 74 68 20 20 20 john snith
' . E
.
:
-1 :
106
6E - 6D
-E
113D:0106
10F
100
-D
-E 100
113D:0100 4A, 6f, 68, 6E, 20, 53, 6E, 6D
-D 100 10F
113D:0100 4A, 6f, 68, 6E, 20, 53, 6E, 6D,69..John Smith
www.ParsBook.org
www.ParsBook.org
-4 " "-
.
-E 107
113D:010 7 69.113D:0106 6E. 6D
E .
-E 100 32 24 B4 02 3F
(Flag Register)FR
Of.Pf.Af,Sf,Zf,Cf
.
IF TF DF
.
-1Carry Flag-CF
CF=1
.
MOV Ax,FFFF
Ax,1
-2 Flag-zf-
Add
Zero
.
MOV Ax,3
www.ParsBook.org
www.ParsBook.org
Add Ax,FFFD
-3 Sign Flag -SF
.
.
-4 Auxiliary carry flag -AF-
AF .
-5 Parity flag-PF
Pf=1 PF= ) . (
-6 (Cout clg =1 )overflow Flag -of-
.
-7 INTerrupt flag-If-
.
-8 Trap Flag-TF Trace flag
Trace .
.
.
-9 Direction flag-DF
www.ParsBook.org
www.ParsBook.org
.
.
: . MOV
.
SUB,ADD .
MOV AL,48H
ADD AL,3FH
MOV Bx,34F5H
Bx,95EBH
)(=1
www.ParsBook.org
Add
) (=
www.ParsBook.org
OF
OV
NV
DF
DN
UP
IF
EI
DI
SF
NG
PL
ZF
ZR
NZ
AF
AC
NA
PF
PE
PO
CF
CY
NC
.
NV UP DI PL NZ NA PO NC
:
OV DN EI NG ZR AC PE CY
-R F
NV UP DI PL NZ NA PO NC-DN OV NG
-R F
NC
PO
DN DI NC NZ NA
OV
MOV BX , AAAA
BX,5556
ADD
INT 3
www.ParsBook.org
www.ParsBook.org
BX=0000
NV UP DI PL ZR AC PE CY
:
.
.
. .
.
:
] [ ][ ][
. 31
.
.
.
:
. SEGMENT
ENDS .
Label SEGMENT
www.ParsBook.org
www.ParsBook.org
Label Ends
.
-1 @ .
-2 31
-3 $ @ -
:
Segment
Proc far
End p
Ends
end
: DS
.
SEGMENT
STSEG
)?( DB 64 DUP 64
ENDS
STSEG
;.
www.ParsBook.org
SEGMENT
DTSEG
DB
DATA1
52 H
www.ParsBook.org
DATA2
DB
29 H
SUM
DB
;.
CDSEG
SEGMENT
MAIN
PROC FAR
ASSUME CS:CDSEG , DS:DTSEG , SS:STSEG
MOV
AX , DTSEG
MOV
DS , AX
MOV
AL , DATA1
MOV
BL , DATA2
ADD
AL , BL
MOV
SUM , AL
MOV
AH , 4C H
INT
21 H
MAIN
END
CDSEG
ENDS
END
MAIN
. ( Procedure)
.
www.ParsBook.org
www.ParsBook.org
PROC
PROC
FAR
ENDP
FAR NEAR
. DOS FAR .
.
CPU .
. ] MOV AL,[Bx Bx
.
DOS SS,CS
DS ) (ES
.
MOV Ax,DTSEG
MOV DS,Ax
. .
MOV AH,4CH .
INT 21H .
.
My File.asm
www.ParsBook.org
www.ParsBook.org
My File.crf
My File.obj
My File.lst
My File.exe
:
.
MASM TASM .
-1 :
Ex.Asm
MASM
.
object filename [Ex.obj] : Ex.obj
. enter .
Source listing [NUL.Lst] : Ex.LST
. .
enter .
obj .
MASM .
EX.ASM , EX.OBJ , EX.LST
www.ParsBook.org
MASM
www.ParsBook.org
:
MASM EX.ASM, ,
CRF .
LIST .
CREF .
Enter ) : (
Cross-reference [ NUL.CRF] :
C:'>Cref Ex.crf Ex.asc
: LINK
" "obj
. LINK " "exe
. LINK DOS
.
LINK.EXE
LINK Ex.obj,Ex.Exe,Ex.MAP
.
Object MOdUls [.OBJ] : Ex.obj
Run File [Ex.exe] : Ex.exe
List File [Nul.Map] : Ex. MAP
www.ParsBook.org
www.ParsBook.org
. Map
.
MAP .
Class
Name
Length
Stop
Start
STACK
STACKSG
00064H
00063H
00000H
DATA
DATASG
00003H
00072H
00070H
CODE
CODCSG
0001BH
0009AH
00080H
5 1F,15,12,25 2B :
PAGE 60,132
www.ParsBook.org
www.ParsBook.org
BX
DEC
CX
www.ParsBook.org
www.ParsBook.org
JNZ
AGAIN
MOV
SUM,AL
MOV
AH,4CH
INT
MAIN
21H
ENDP
CDSEG ENDS
END MAIN
.
C:\>debug prg.exe
-U CS:0 19
1053:0000
B86510
MOV
AX , 1052
1053:0003
8ED8
MOV
DS , AX
1053:0005
B90500
1053:0008
BB0000
MOV
BX , 0000
1053:000D
0207
ADD
AL , BX
1053:000F
43
MOV
IWC
CX , 0005
BX
1053:0010
49
DEC
CX
1053:0011
75FA
1053:0013
A20500
MOV
1053:0016
B44C
MOV
JNZ
000D
[0005] , AL
AH , 4C
www.ParsBook.org
www.ParsBook.org
1053:0018
CD21
INT
21
-D 1052:OF
1052:0000
25 12 15
1F
2B
00 00 00 00 00
-G
Program 52 terminated normally
-D
0010H 6
. 0028H
TITLE PRG(EXE)
PAGE 60 132
STSEG SEGMENT
DB 32 DUP(?)
STSEG ENDS
;
DTSEG SEGMENT
ORG
10 H
www.ParsBook.org
www.ParsBook.org
;.
CDSEG SEGMENT
MAIN PROC FAR
ASSUME CS:CD SEG,DS : DTSEG , SS:ST SEG
MOV AX,DTSEG
MOV DS, AX
MOV SI, 0FFSET DATA-IN
MOV DI, 0FFSET COPY
MOV CX, 06H
MOV LOOP: MOV AL,[SI]
MOV [DI], AL
INC SI
INC DI
DEC CX
JNZ MOV-LOOP
MOV AH,4CH
INT 21H
MAIN ENDP
CDSEG ENDS
: ORG
.
www.ParsBook.org
www.ParsBook.org
A F C4 .
.0C4
.
C:\>debug prg.exe
-U CS: 0 1
B86610 MOV Ax,1066
1069: 0000
1066: 0 2f
-d
1066:0000 00 .
1066:0010 25 4F 85 1F 2B C4.
1066: 0020 00 00 .
-g
Program terminated normally
-d 1066: 0 2f
1066: 0000 00 00 ..
1066: 0010 25 4F 85 1F 2B C400 00
1066 : 0020 00 00 00 00 00 00 00 00 -25 4F 85 9F 2B C4 ..
-g
:
NEAR
. IP,NEAR CS
.
www.ParsBook.org
www.ParsBook.org
FAR IP,CS
.
:
: .
JNZ label zf=0 ZF=1
.
.
-128 +127 IP .
00 ff
. 2 .
IP .
)( IP .
MOV Ax,1066
DS,Ax
1067:0000 B86610
MOV
1067:0003 8ED8
www.ParsBook.org
www.ParsBook.org
JNZ AGAIN
www.ParsBook.org
www.ParsBook.org
jump - : IP BX
BX
jmp
jump - :
] JMP[DI IP DI
DI+1 .
FAR JUMP-3
JUMP PTRLABLE
IP CS
:
RAM CPU
CPU
RAM
) SS ( )SP ( CPU
SP CPU.
) PUSH( ) POP( .
:
-1
-2
-3
-1 j condition .
.
www.ParsBook.org
www.ParsBook.org
1
JA Jump Above
www.ParsBook.org
ZF
>
1 =
<
www.ParsBook.org
-3 CMP dest,source
. :
> ZF= OF=SF
ZF=1
SF # OF
<
Jump if ZF=0 Or OF=SF
JG Jump Greater
Jump if OF=SF
Jump if OF SF
JL Jump Less
Jump if ZF=1 Or Of SF
Jump Of ZF=1
JE Jump if Equal
96
SS:1230
SP=1230
5F
Push Ax SS:1231
www.ParsBook.org
www.ParsBook.org
Push DI
C2
SS:1232
SP=1232
85
Push DI SS:1233
Push Ax
86
SP=1234
27
Start
30
SS : 1234
Push Dx SS:1235
SS : 1236
SP=1236
Push POP .
POP CX
SS:18FA
SP=18FC POP DX
SP=18FC
C2=1423
SP=18FE
23
:18FB
14
6B
: 18FC
: 18FD
POP DX
2C
91
: 18FE
: 18FF DX=2C68
F6
: 1900 SP=1900
20
BX=F691
POP CX
POP BX
SP=18FA
): (CALL
.
NEAR CS FAR .
.
NEAR IP . FAR IP,CS
.
www.ParsBook.org
www.ParsBook.org
RET .
POP .
1302:0100 MOV AL,2
1302:0102 Call SUB1
02 FFFC
IP
01 FFFD
FFFE
1302:0105 MOV AL,4
:
PROC FAR NEAR .
. FAR .
; ..
SEGMENT
CODESEG
ASSUME
AX,
MOV
DS,AX
MOV
SUBR1
www.ParsBook.org
Call
www.ParsBook.org
MAIN
Call
SUBR2
Call
SUBR3
MOV
AH,4CH
INT
21H
END P
;..
SUBR1 PROC
.
.
.
RET
SUBR1 ENDP
;
SUBR2 PROC
.
.
RET
SUBR2 ENDP
RET
;.
SUBR3
PROC
www.ParsBook.org
www.ParsBook.org
.
.
RET
SUBR3 ENDP
;..
CODESEG ENDS
END MAIN
) DB (
.
1000 1111 B
DATA3 DB
DATA4 DB 13
DATA4 DB 14H
4D 79 20 6E 61 6D 65
DATA5 DB MY Home
) DUP( : .
DATA1 DB 01H , 01H, 01H,01H,01H,01H
www.ParsBook.org
www.ParsBook.org
) DW ( : .
DATA1 DW 1954
DATA2 DW 253FH
DATA3 DW 1001010101111111B
) EQU ( :
.
. ) .
(.
EQU 30
Count
-
Counter1 DB Count
Counter 2 DB Count
) DD ( :
4
) DQ ( :
www.ParsBook.org
www.ParsBook.org
8
) DT ( BCD .
Huge ,LARGE, COMPACT MEDIUM , SMALL , TINY
: SMALL 64K
.
: MEDIUM 64K
64K .
: COMPACT Medium 64K
.
: LARGE . 64K
) ( 64K .
: HUGE 64k .
)( 64k .
: TINY 64k .
COM .
.
: :
.CODE
.DATA
.STACK
www.ParsBook.org
www.ParsBook.org
. END SEGMENT
.
.STACK
.CODE
.Data
TITLE
PRG.EXE
PAGE
60,132
.MODEL SMALL
. STACK 32
.DATA
DATA1
DW
ORG
10H
DW
2
.CODE
START
ASSUME
www.ParsBook.org
www.ParsBook.org
SUB
Bx,Bx
COM
64K
0100
www.ParsBook.org
www.ParsBook.org
( )
1-TITLE PRG.COM
2-PAGE 60,132
3-CODSG
SEGMENT
4-
ORG
5-
ASSUME CS:COSG,DS:COSG,ES:CODSG
100H
PROC NEAR
8-
MOV AX,DATA1
9-
ADD Ax,DATA2
10-
MOV SUM,AX
11-
MOV AH,4CH
12-
INT 21H
13-PROGCODE
ENDP
www.ParsBook.org
www.ParsBook.org
18- ;-----------------19-CODSG
20-END
ENDS
PROGCODE
.
. Jump
START : JMP PROGCODE
; . DATA Area
DATA1 DW 2390
DATA2 DW 3456
Sum
DW ?
; CODE Area
PROGCODE : MOV Ax,DATA1
ADD Ax,DATA 2
MOV Sum,Ax
MOV AH,4CH
INT 21H
;
CODSG ENDS
END START
: COM Exe
www.ParsBook.org
www.ParsBook.org
exe com .
EXE 2BIN COM .
Exe 2BIN PRG PRG.COM
:
.
.
0000
00
0 256
0 65535
16
FFFF
FF
:
Dest=Dest+Source
.
.
80X86 .
Dest = Dest+Source +CF
ADC
ADC .
). (.
TITLE PRG
PAGE 60 , 132
www.ParsBook.org
www.ParsBook.org
STSEG SEGMENT
.
DB 67 DUP (?)
STSEG ENDS
;..
DTSEG SEGMENT
Count EQU 5
DATA
DW
1 2 ..................... 5
ORG
0010H
DW
2 DUP (3)
CDSEG
SEGMENT
MAIN
PROC
FAR
ASSUME
BACK
CS:CDSEG, DS:DTSEG,SS:STSEG
MOV
Ax,DTSEG
MOV
DS,Ax
MOV
CX,Count
MOV
SI,offset DATA
MOV
Ax,
MOV
Bx,Ax
: ADD
Ax,[SI]
ADC
Bx,
INC
SI
www.ParsBook.org
www.ParsBook.org
INC
SI
DEC
CX
JNZ
BACK
MOV
Sum,Ax
MOV
MOV
Sum+2,Bx
AH,4CH
INT21
MAIN
ENDP
CDSEG
ENDS
END
MAIN
.
DATA1=367FC25963CBH
TITLE
PRG.exe
PAGE
6 ,132
STSEG
SEGMENT
DATA2=23FA324633CFH
DB 64 DUP (?)
STSEG
ENDS
; .
DTSEG
SEGMENT
DATA1
DQ
ORG10H
www.ParsBook.org
www.ParsBook.org
DATA2
DQ ..
ORG 0020H
DATA3
DQ ?
DTSEG
ENDS
;
CDSEG
SEGMENT
MAIN
PROC FAR
ASSUME CS:CDSEG,DS:DTSEG,SS:STSEG
MOV Ax,DTSEG
MOV DS,Ax
CLC ; Clear Carry Flag
MOV SI,Offset DATA1
MOV ; DI , Offset DATA2
MOV
Bx , Offset DATA3
. 04,03
MOV
BACK
Cx,04
: MOV
Ax,[SI]
ADC
Ax,[DI]
MOV
[BX],AX
INC
SI
INC
SI
www.ParsBook.org
www.ParsBook.org
SI
INC
DI
INC
DI
INC
Bx
INC
Bx
INC
BACK
LOOP
AH,4CH
MOV
21.H
INT
ENDP
MAIN
ENDS
CDSEG
MAIN
END
DQ 8 . ADC .
ADC CF= .CLC
LOOP *****- DEC Cx
**** JNZ
Cx .
Cx
www.ParsBook.org
www.ParsBook.org
2 . :
-1 .
00011011
00100010
22
-2 .
1 11 1
00 0 11 0 11
11011110 +
11111001
F9
-3 .
SUB CF= CF=1
2 . NOT INC
.
4CH
DB
DATA1
6EH
DB
DATA2
DB
DATA3
.
DH,DATA1
MOV
DH,DATA2
SUB
NEXT
JNC
DH
NOT
DH
www.ParsBook.org
INC
www.ParsBook.org
NEXT:MOV DATA3,DH
: SBB
.
SBB Des,Source ; Des=Des-Source-
SUB
.
: PTR
. WORD PTR
.
32FA234CH
DD
DATA-A
2832FC BA H
DD
DATA-B
DD
RESULT
- FCBA
www.ParsBook.org
www.ParsBook.org
32FA
- 2832
-1
:
:
-1
-2
-3
-1 X : AL
. Ax .
? DW
RESULT
MOV AL,32H
MOV CL,40H
MUL CL
MOV RESULT,Ax
MOV AL,DATA1 MOV AL,DATA1
32H
DATA1 DB
40H
DATA2 DB
RESULT DW
MOV RESULT,Ax
MUL CL
MOV RESULT,Ax
MOV AL,DATA1
www.ParsBook.org
www.ParsBook.org
Byte .
]MUL Byte PTR [SI
-2 X : Ax
.
Dx,Ax . Ax Dx
.
DATA1 DW 3278H
DATA2 DW 4C22H
)?(RESULT OW 2 DUP
Ax,DATA1
MOV
DATA2
MUL
RESULT , Ax
MOV
RESULT+2 , DX
MOV
-3 X : AL
AH .
DB 3CH
DATA1
DW 13B2H
DATA2
)?( DW 2 DUP
RESULT
www.ParsBook.org
www.ParsBook.org
MOV
AL
Ax
Ax
Dx-Ax
AH= ,AL
Dx-Ax
:
-1
-2
-3
-4
8086
divide error .
: AL AH
. AL
AH .
102
www.ParsBook.org
DB
DATA1
www.ParsBook.org
DATA2
DB
20
QOUT
DB
REMAIN DB
MOV
AL,DATA1
SUB
AH,AH
DIV
10
MOV
SUB
DIV
AL,DATA1 AL=12
AH,AH
DATA2
AH<==0
AC
Ax
AH |__20
MOV
QOUT,AL
MOV
REMAIN,AH
MOV
AL,DATA1
SUM
AH,AH
MOV
DIV
05
{AL<=05
AH<=02
BH,DATA2
BH
AX |__BH
MOV
QoUT , AL
MOV
REMAIN , DH
MOV
AL,DATA1
=>{AL
www.ParsBook.org
05
AH
02
www.ParsBook.org
AH,AH
DATA2
DATA2
AX
Bx,Offset
SUB
MOV
DIV
QOUT , AL
MOV
REMAIN , AH
MOV
: Ax Dx .
. Ax Dx
.
Ax,320 10
MOV
Dx,Dx
SUB
Bx,100
MOV
Bx
DIV
QOUT,Ax
MOV
REMAIN , Dx
MOV
: Ax .
AL AH .
Ax,3252
MOV
CL,100
MOV
CL
DIV
QOUT , AL
MOV
REMAIN , AH
www.ParsBook.org
MOV
www.ParsBook.org
: Dx,Ax . Dx
Ax . . DIV
Ax Dx .
345607
DD
DATA1
10000
DW
DATA2
?
?
DW
DW
MOV
MOV
DATA2
DIV
QUOT,Ax
MOV
REMAIN,Dx
MOV
QUOT
REMAIN
Dx:Ax
Dx .
,AH AL
AL
AH
,DX=0 =AX
Ax
Dx
=Ax
AL
AH
=DxAx
Ax
Dx
:
: AND
www.ParsBook.org
www.ParsBook.org
MOV
CL,2BH
AND CL,0CH; BL<= 8 .
.
00101011
00001000
00001000
08
AND OR XOR
OF,CF . SF,ZF,PF
.
.
ZF=1 , DH .
CH,CH
AND
****
JZ
: OR OR .
. OR .
ZF=1 , BL .
CF=OF=
SF=ZF=
PF=
00101011
00001100
00101111
BL,
OR
BL,BL
OR
CL,2BH
CL, CH
PF
2FH
DH,54H
MOV
DH,78H
www.ParsBook.org
XOR
MOV
OR
www.ParsBook.org
S2=>F=PF= ,CF=OF=
0010 1011
0000 1100
0010 1111
:
.
: SHR SHL .
: SHR LSB
MSB .
CF
MSB
MSB
LSB
LSB
MSB
MSB
LSB
LSB
CF
CL .
MOV AX,0004 .
SHR BX,1
MOV DL,12
SHL DL,1
SHL,DL,1
www.ParsBook.org
AL,3BH
MOV
CL,3
MOV
AL,CL
SHR
DL,12
MOV
CL,2
MOV
DL,CL
SHL
www.ParsBook.org
CMP des,Source
: COMPARE
SUB .
CF ZF .
ZF
CF
Des>Source
Des=Source
Des<Source
CF ZF .
99 TEMP
? DB
AL,TEMP
TEMP
MOV
AL,99
CMP
HOT
JZ
Bx,Z
MOV
5 :
www.ParsBook.org
PRG.EXE
TITLE
66,132
PACE
SEGMENT
STSEG
www.ParsBook.org
DB 64 DUP(?)
;..
DTSEG
SEGMENT
GRADES
DB 23,68,33,62,92
ORG 0008
HIGHEST
DB
DTSEG
ENDS
;
CDSEG
SEGMENT
MAIN
PROC FAR
ASSUME
AGAIN :
MOV
AX,DTSEG
MOV
DS,AX
MOV
CX,5
MOV
BX,OFFSET GRADES
SUB
AL,AL
CMP
AL,[BX]
JA
NEXT AL
MOV
NEXT :
CS:CDSEG,DS:DTSEG,SS:STSEG
AL,[BX]
INC
BX
LOOP
AGAIN
www.ParsBook.org
www.ParsBook.org
HIGHEST,AL
MOV
AH,4CH
MOV
21 H
INT
ENDP
MAIN
ENDS
CDSEG
END MAIN
:
:
61
a
b
62
41
42
A
B
C
63
43
79
59
7A
5A
:
df 0100 0001
41H
df .
0110 0001
61H
61H 7AH
AND,1101 1111=DFH .
PRG.EXE
www.ParsBook.org
TITLE
www.ParsBook.org
PAGE
6 0,132
STSEG
SEGMENT
DB 64 DUP(?)
STSEG
ENDS
; .
DATSEG
SEGMENT
DATA1
DB
ORG 0020H
DATA2
DB
14 DUP(?)
DTSEG
ENDS
;..
CDSEG
SEGMENT
MAIN
PROC
FAR
BACK :
MOV
AX,DTSEG
MOV
DS,AX
MOV
SI,Offset
MOV
BX,Offset
MOV
CX,14
MOV
AL,[SI]
CMP
AL,61H
DATA1
DATA2
'a'
www.ParsBook.org
www.ParsBook.org
Over :
JB
Over
CMP
AL,7AH
JA
Over
AND
AL,11011111D
MOV
'z'
[BX],AL
INC
SI
INC
BX
LOOP
BACK
MOV
AH,4CH
INT
21H
MAIN
ENDP
CDSEG
ENDS
END
MAIN
AL 20 :
K6 :
K61 :
IBM BIOS
CMP
AL,'a'
JB
K61
CMP
AL,'z'
JA
K61
SUB
AL,'a'-'A'
MOV
www.ParsBook.org
www.ParsBook.org
MS.B
MSB
LSB
LSB
CF
; CF=
BL,32H
RCR
BL,1
RCR
BL,1
RCR
BL,1
STC
; CF=1
MOV
BX,32FAH
MOV
CL,6
RCR
BX,CL
CF
MSBMSB
M.V
CL,3
RCR
AL,CL
LSLSB
B
: RCL
. LSB CF CF MSB
CLC
MOV
AX,33 RCH
MOV
CL,5
RCL
AX,CL
www.ParsBook.org
www.ParsBook.org
: IBM PC
8086 20 20
. PC
.
00000H
RAM
,FFFFH
640K
A0000H
Video D1SPlay
BFFFFH
RAM 128K
C0000H
ROM
FFFFFH
256 K
: BIOS RoM
CPU
CPU
.
RoM BIOS BIOS .
RAM CPU .
. PC
BIOS .
www.ParsBook.org
www.ParsBook.org
256 .
XX
INT
:
-1
SP Push .
-2
SP Push CS .
-3
SP Push IP .
-4
4 .
2 2 , IP CS .
-5
TF,IF .
ISR .
CS:IP ISR .
.
INT03 4 03=12=0000CH IP,CS .
1024 (4 256=1024)RAM
.
www.ParsBook.org
www.ParsBook.org
INT
INT 00
00000
INT 01
00004
INT 03
www.ParsBook.org
www.ParsBook.org
INT 04
.
: IBM .
.
DOS .
C:\> debug
-D 0000:0000
00 06
CS
0000 : 0010
IP
CS
IP
: IRET IP,CS
INT .
RET CALL .
. INT21H,INT10H
.
INT 10H BIOS
Rom BIOS IBMPC
.
.
AH .
:
www.ParsBook.org
www.ParsBook.org
80 25 .
: 06H
INT 10H
:
00 , 00
00 , 79
12 , 39
24 , 00
24, 79
AH,06
MOV
AL,00
MOV
BH,07
MOV
CH,00
MOV
CL,00
MOV
DH,24
MOV
MOV AX,0600H
MOV BH,07
MOV CX,0000
MOV DX,184FH; 24,79
www.ParsBook.org
DL,79
MOV
www.ParsBook.org
INT 10H
.
: 02 : DX .
=DH
=DL
RAM
. BH=00 .
.AX,0600H
MOV
BX,0F
MOV
MOV
CX,0000
DX,184FH
10,H
AH,02
MOV
INT
MOV
BH,00
DL,39
DL,DH
MOV
MOV
DH,12
MOV
10 H
INT
: 03
MOV AH,03
MOV BH,00
www.ParsBook.org
www.ParsBook.org
INT 10H
CX .
....... : 0 : AH=0CH
AL=1
CX DX BH AL=
200 5 200 5
CX=100
MOV
DX=50
MOV
INT
INC CX
CMP C2,200
BACK
JNZ
: 10 .
) . 0 (F
(.
: 21H DOS . DOS .
: 09
AH= 9 . DX
) . ( $ .
www.ParsBook.org
www.ParsBook.org
DATA-ASC
MOV
AH , 9
MOV
DX , Offset DATA-ASC
INT 21 H
. DL : : 02
MOV
AH= 2
MOV
DL,'6'
INT
21H
: : 01
. AL
MOV
AH, 1
INT
21H
TITLE
Test
PAGE 60,132
STSEG SEGMENT
DB 64 DUP(?)
SESEG
ENDS
;
DTSEG
DATA
DTSEG
SEGMENT
DB
HELLO WORLD,$
ENDS
www.ParsBook.org
www.ParsBook.org
;
CDSEG SEGMENT
MAIN PROC FAR
ASSUME
MOV AX,DTSEG
MOV
DS,AX
CALL CLEAR
CALL CURSOR
CALL
DISPLAY
MOV
AH,4CH
INT
21H
MAIN ENDP
;
;SUB PROTIN CLEAR
CLEAR
INT
PROC
MOV
AX,0600H
MOV
BH,07
MOV
CX,0000
MOV
DX,184FH
10H
RET
www.ParsBook.org
www.ParsBook.org
CLEAR
ENDS
;
;SET
CURUSOR CENTER
CURSOR
PROC
MOV AH,02
MOV BH,00
MOV DH,12
MOV DL,39
INT
10H
RET
CURSOR
ENDS
;.
;DISPLAY
STRING
DISPLAY PROC
MOV AH,09
MOV
INT
DX,OFFSET DATA
21H
RET
DISPLAY ENDS
;
CDSEG
ENDS
www.ParsBook.org
www.ParsBook.org
MAIN
END
: OAH -
.
DX,AH=0AH ) . (
.
.
)6 ? 6 DUP (FF
10H
ORG
DB
DATA1
0015 0016
0D
CR
AH , AH
MOV
Dx,Offset DATA1
MOV
21H
INT
0014
0013
0012
0011
6A
6D
061H
03
0010
06
......
......
......
16
CR
L16
www.ParsBook.org
A16
www.ParsBook.org
6 ) (CR +5
.
Enter 00 CR . . : 07
) (
AL :
AH,07
MOV
21H
INT
: INT 16 H
: 01 : ZF= . ZF=1
: 00 AL .
01 .
07H
.
TITLE
SMALL
.MODEL
.STACK
.DATA
MESSAGE
KEY$
.CODE
www.ParsBook.org
www.ParsBook.org
MAIN
PROC
MOV
AX,@ DATA
MOV
DS,AX
MOV
AH,09
MOV
INT
AGAIN :
MAIN
DX,Offset MESSAGE
21H
MOV
AH, 2
MOV
DL,07
INT
21H
MOV
AH,01
INT
16H
JZ
AGAIN
MOV
AH,4CH
INT
21H
ENDP
END
(
MESSAGE
DB
key$'
CODE
CODE
www.ParsBook.org
www.ParsBook.org
CODE
AGAIN : AH,COE
CODE
CODE
CODE
CODE
CODE
JZ AGAIN
MOV
AH,00 H
INT
16H
CMP
AL,Q
JE
EXIT
CMP
AL,q
JE
EXIT
JMP
AGAIN
EXIT :MOV
AH,4CH
INT
21H
MAIN
ENDP
.
www.ParsBook.org