Professional Documents
Culture Documents
1 PDF
1 PDF
ر
.386
.model flat,stdcall
option casemap:none
include\masm32\include\windows.inc
include\masm32\include\kernel32.inc
include\masm32\include\masm32.inc
include\masm32\include\debug.inc
includelib\masm32\lib\kernel32.lib
includelib\masm32\lib\masm32.lib
includelib\masm32\lib\debug.lib
. "! آ#$ ت%&'* اﻝ
)ت واﻝ+ ه// ﺡ
.data
(var) :; ﺡ%< و%اآة( اﻝ+ اﻝ56ا7 ) اﻝ& ات. /0& اﻝ1& ء3$ا اﻝ+ ه
ﻝ >'ل
.code
start:
( ﻝ >'لbegin) ;%< و%زات اﻝ@ﺹ ﻝB آ& ا1& ء3$ا اﻝ+ ه
اع ا!
ات# أ
D%س ﻝ:" و3@ﺡ اﻝF اﻝ#Fاآة وﺡ+ اﻝ56ا7 اﻝ& ات أو. ع7 ﺙث أK ﻝKﺝ7"
-: اع ه7Mوا
. 8 bit $( وﺡdata byte) رة% ﻝ0&@ وهdb -1
. 16 bit $( وﺡdata word) رة% ﻝ0&@ وهdw -2
. 32 bit $( وﺡdata double) رة% ﻝ0&@ وهdd -3
1 ا
اق ادﺱ أاد ا
ا
ا
ا
ات
ر ------------ﻝ masm32
آ( ا!
ی&
ا!
ات
var
;x:integer
; ا*#ع :أﺱ ,ا!
أي أن اﻝ7'" 0ن
أ
)7' (masm32ن اﻝ& . /0اﻝ& ات ﺡ (data) :آ ذآ > ً:وﻝ<'
اﻝ&ﻝ -:
أﺱ ,ا!
ا ا.ﺏ!ا -ا*#ع
وآ ا
CMاﻝ&ﻝ -:
.data
r1 dd 30h
r2 dw 20
k db 00111011b
2ﺡ/////0ﻝXXX 5XXX XXX&" (masm32) XXXم ) XXX) (hexadecimalاﻝ&)XXXت أو
اﻝ&0ت اﻝB :Fﺡ وﺝ7د ﺙث ﺹ Zﺡﻝ ذآ اﻝ ] ^: 16ذﻝ\ أن اﻝ 16ﻝم
اﻝ<ي )اﻝ
"7ﻝ; إﻝ] م (16أ أذا ﺝء Kاﻝ 16ﺡف ) ] (hذﻝ\ أن اﻝ7&' 16ب
م 16أ أذا آن اﻝ% 16رة (0,1) .و &; ﺡف ) ] (bذﻝ \Xأن اﻝ7X&' 16Xب
ﻝم اﻝ. eC
آ 3@" fن
ﺡ //ﻝ
& . 7اﻝم اﻝ<ي إﻝ] اﻝم ال ]
1F: 16اﻝKد ً C 16
r2 dw 20 r2 6
16 20 4
16 1 1
0
r2ه 14h '& #اﻝ . 16ا )>Mإﻝ] ا ]
Mو .اﻝ Fر إﻝ] اﻝ .أي أن 6
أ اﻝ& . 7اﻝ eCإﻝ] الh 16ﺥ +آ أر bits 5و! ' 5اﻝ 16اﻝ+ي
:م
الC 16
k db 00111011b
C 1011اﻝ 11) 16أي (B
C 0011اﻝ(3) 16
2 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
(PrintHex) 9أیز ا
56ا7 ت أو$F
ﻝ%iن اﻝ7'" و+ )&
] ﺵﺵ اﻝ%i
ز ﻝjا ا+م هK@&F
l ﺡhexadecimal م$ &ن اﻝ7'" و32bit 1$اآة )اﻝ& ات( ذات اﻝ+اﻝ
. ة% آ#&'" أن#$ (P,H)أن ﺡف
. ع7ى اﻝ
وهﻝ\ ﺙث أK; ﻝ$ وف ﺡ3 'ن ﺥ. رة% -:(register) $Fاﻝ
-:ت$Fاﻝ
eax,ebx,ecx,edx,esi,edi,esp,ebp -: وه32 bit 1$ت ذات ﺡ$F -1
ax , bx , cx , dx , si , di , sp , bp -: وهbit 16 1$ت ذات ﺡ$F -2
ah , al , bh , bl , ch , cl , dh ,dl -: وهbit 16 1$ت ذات ﺡ$F -3
16 bit ax
ah al
8 bit 8 bit
eax bit 32
1- mov instruction
-: أنl ( ﺡdestination ] إﻝsource) ت7& nFز ﻝjا ا+م هK@&F
. :ي "@ج ; اﻝ+ اﻝ'ن اﻝ-: source
. : ; اﻝ:&F" ي+ اﻝ'ن اﻝ-:destination
3 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
.386
.model flat,stdcall
option casemap:none
include\masm32\include\windows.inc
include\masm32\include\kernel32.inc
include\masm32\include\masm32.inc
include\masm32\include\debug.inc
includelib\masm32\lib\kernel32.lib
includelib\masm32\lib\masm32.lib
includelib\masm32\lib\debug.lib
.data
r1 dd 10h
.code
start:
mov eax,r1
PrintHex eax
invoke ExitProcess,0
end start
4 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
ن اDE (آ
5 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
اG(*آ( ﺕ
ة+ف " ﻝ اﻝ7> Assemble ASM file @&رProject e6 . -1
-: اﻝ&ﻝ
]XX Volume in drive رةXX% ًةXXﺵ% Assembling رةXX% KXX تXXr أذا
X" 1X أذا ﻝX أ،X Cة اﻝ7Xi@] اﻝX إﻝX:& / Xوﻝ] ﺹMة ا7i@ اﻝ+ )&ذﻝ\ أن اﻝ
. + )& اﻝK 1 ﺙsave داةM; و!^
] ا0 hi ; ﺥ%] ذﻝ\ أن اﻝ
ة+XX اﻝXX ﻝXX" ف7XX> Assemble & Link رXX&@ Project XXe6 .XX -2
-: اﻝ&ﻝ
6 ا
اق ادﺱ أاد ا
ا
ا
ا
ات
ر ------------ﻝ masm32
&@ Project e6 . -3ر اﻝ@ ر اMﺥ وه7> Run program 7ف ﻝ
" اﻝ&) +آ اﻝ+ة اﻝ&ﻝ -:
eax
7 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
2- mov ebx , 40
(hexadecimal) إﻝ] م16 اﻝ7" #$ * اﻝﻝ+ ه
28h ه40 16
ﻝ: اﻝ:ن اﻝ7'"
16 40 ebx=00000028
16 2 8 bx=0028
0 2 bh=00
bl=28
3- mov dh,9h
edx=00000900
dx=0900
dh=09
dl=00
Q
اRS!آ( ا
.ً :> ﻝ; آ ذآ7 .' 1( وإذا ﻝHexadecimal) م16ن اﻝ7' أن#$ -1
#F( وﺡbinary system) eC إﻝ] اﻝم اﻝ#ﻝF] ﻝi اﻝ16 اﻝ7" -2
.1$ ﻝ' ﺡ7
iم اﻝ6رMد اK
.0 ] إﻝ1 وآ1 ] إﻝ0 آ#
: \( وذﻝ2'complement) 1&&@ج اﻝF -3
.(1 K وﻝ0=1+1 ، 1=0+1 ، 1=1+0 ، 0=0+0) 1 5 5$ -4
.(hexadecimal) ]د اﻝ" إﻝKل اﻝ7 -5
-: O أ#=
1- mov ax,-30h
] و&ج إﻝ16bit 1$ ذات ﺡax نB 0030 #&'دس < وFد م اﻝK اﻝ-1
م6 أر5أر
-:/%0 eCد إﻝ] اﻝم اﻝKل اﻝ7 -2
0000 0000 0011 0000
1111 1111 1100 1111 7 ه1& اﻝ-3
1 + 16 اﻝ5 5$ -4
F F D 0 7 اﻝ" ه-5
eax=0000FFD0
ax=FFD0
ah=FF
al=D0
8 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
2- mov eax,-3h
eax=FFFFFFFD -:7ن اﻝ" ه7' :Fات اﻝ7i@ ){ اﻝt %i&
ax=FFFD
ah=FF
al=FD
3-mov eax,-1
eax=FFFFFFFF
ax=FFFF
al=FF
ah=FF
eax ولM اtwo register ت7& . K%&
ﻝmasm32
#& أآ//س
؟90h ;& 6 وebx C واﻝ60h ;& 6و
.386
.model flat,stdcall
option casemap:none
include\masm32\include\windows.inc
include\masm32\include\kernel32.inc
include\masm32\include\masm32.inc
include\masm32\include\debug.inc
includelib\masm32\lib\kernel32.lib
includelib\masm32\lib\masm32.lib
includelib\masm32\lib\debug.lib
.data
.code
start:
mov eax,60h
mov ebx,90h
mov ecx,eax
mov eax,ebx
mov ebx,ecx
PrintHex eax
PrintHex ebx
invoke ExitProcess,0
end start
9 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
10 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
2- Xchg Instruction
اﻝ0( واﻝtwo operand) .
ت7& . K%&
ز ﻝjا ا+م هK@&F
-: ﻝ; ه
Xchg destination , source
//ت0ﺡ2
.1$و ﻝF& ن اﻝت7'" أن#$ -1
. ذاآة67 . K%& اﻝ.'B -2
11 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
-:(H.W) واﺝت#=
1
r1 7ول هM ذاآة ا67 . K%&م ﻝ7: masm32
#& أآ// س
؟Xchg ام أزK@&> 100h ;& 6 وr2 C واﻝ220h ;& 6و
2
ِ ات اﻝ&ﻝ وأ7i@ اﻝ+) // س
؟e&^ اﻝ
1- mov eax,-40
xchg ah,al
2- mov ebx,0ffh
mov edx,-2Ah
xchg bx,dx
3-mov ah,-7
mov ax,-30
xchg eax ,ebx
12 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
-: اﻝ&ﻝe&^ اﻝ
ِ أ//لC
mov bx,0A69Bh
movzx eax,bx eax =0000A69B
movzx edx,bl edx =0000009B
movzx cx,bh cx = 00A6
13 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
-: اﻝ&ﻝe&^ اﻝ
ِ أ//لC
mov bx,0A69Bh
movsx eax,bx eax =FFFFA69B
movsx edx,bl edx =FFFFFF9B
movsx cx,bh cx = FFA6
&ﺽ#ﺕ
eC إﻝ] اﻝم اﻝA 16ل اﻝ7 A 7 ه16 أن ﺥ رq ﺡA69B هbx 6
/%0 ات ﻝK واﺡf ! أذًاK واﺡ7ر هF ﺝ اﻝ. bit أن ﺥq ﺡ1010
-: آ ﻝ<' اﻝ&ﻝ32 bit 1$اﻝ
F F F F A 6 9 B
-:(H.W) واﺝت#=
1- mov bl,-7
movzx ax,bl ax=?
2- mov ax,901Ch
movzx edx,ah edx=?
3-mov ax,-30
movsx ebx,ax ebx=?
4- mov ah,-fh
movsx bx,ah bx=?
14 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
Arithmetic Instruction
1- Inc Instruction
. (operand) ] إﻝ1 ]ز ﺏ^ﺽjا ا+م ه7:
-: O_ ا#=
1- mov ax,30h
inc ax ax =0031h
2- mov ax,30
inc ax
(hexadecimal) إﻝ] م30 16 اﻝ7" #$ * اﻝﻝ+ ه
16 30
16 1 E
0 1
ax = 001F : اﻝ/%0" inc أزt %i" K وax =1E 6 أي أن
-:(H.W) واﺝت#=
1- mov ax ,-30
inc ax ax=?
2- mov bx ,7
inc bx bx=?
3- mov al,17
inc al al=?
4- mov ah,-1
inc ax ax=?
5- mov al,FF
inc ax ax=?
15 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
2- dec Instruction
. (operand) ال. 1 ز ﺏ^ صjا ا+م ه7:
-: O_
ا#=
1- mov al,1
dec al al = 00
2- mov ah,7
dec ah ah =06
3- mov ax,40
dec ax
(hexadecimal) إﻝ] م40 16 اﻝ7" #$ * اﻝﻝ+ ه
16 40
16 2 8
0 2
ax = 27h : اﻝ/%0" dec أزt %i" K وax =28h 6 أي أن
4- mov al,-7
dec al
#ﻝF اﻝ.
@&
al=F8 0000 0111
1111 1000
1+
1111 1001
1-
1111 1000
F 8
-:(H.W) واﺝت#=
1- mov al,-30
dec al al=?
2- mov bx,-79
dec bh bh=?
16 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
3-Add Instruction
0( واﻝdestination ) ]( إﻝsource)ت ال7& زjا ا+م ه7:
-: اﻝ ﻝ; ه
add destination, source
//ت0ﺡ2
.1$ ﻝ. &وF& . & آ5ز ﺝ7$B -1
. ذاآة67 . 5$ز اﻝ7$B -2
KXXXXXار واﺡKXXXXX: ن0XXXXX:دة واﻝXXXXX3( واﻝsub)حXXXXXi( واﻝadd)5XXXXX$ت اﻝXXXXX
-3
.(flag register) ]
( "ﺙinc&dec)
.(1 K وﻝ0=1+1) ، (1=0+1) ، (1=1+0) ، (0=0+0)-4
-: O_
ا#=
1- mov r1,20h
mov eax,40h
add eax,r1 eax = 00000050
0010 0000
0100 0000 +
0110 0000
6 0
2- mov bl,40
mov ah,32
add ah,bl
0010 1000
16 40
0010 0000
16 2 8
0100 1000
0 2
bl= 28h
ah = 4 8
16 32 ah=20h
16 2 0
0 2
17 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
-:(H.W) واﺝت#=
1- mov bl,-20
mov al,20
add al,bl
2- mov b,-56
mov eax,0ACD2h
add ah,bh
3- mov bl,5
mov ah,-3
add eax,ebx
4-sub Instruction
0( واﻝdestination ) ال. (source)ت ال7& حi زjا ا+م ه7:
-: اﻝ ﻝ; ه
sub destination, source
.add زj
; ){ ﺵوط اt%i"//ﺡ
ح9آ( أﺝ
اء ا
. eC( إﻝ] اﻝم اﻝdestination)( و الsource) ل ال7 -1
.0 ] إﻝ1 و1 ] إﻝ0 #
: \( وذﻝsource) ال1& &@جF -2
.(source) ال1& 5 (destination) ال5$ -3
.Kاﺡ7 اﻝ5 ( أوcarry) ال5 " اﻝ5$ -4
.(hexadecimal) إﻝ] م الe اﻝ$ &ل اﻝ7 -5
-: O_
ا#=
1- mov al,20h
(source) 0010 0000
sub al,20h
(destination) 0010 0000
al=00
(source) 1& 1101 1111+
1111 1111
1+
0000 0000
0 0
18 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
4 0
3- mov al,66h
mov bh,50h
sub al,bh al=16h
4- mov eax,80h
mov ebx,60h
sub eax,ebx eax = 00000020
//ت0ﺡ2
#F <'
و ﺡKﺝ7"B (destination >= source) ﺡﻝ-1
.:Fات اﻝ7i@اﻝ
#ﺝ7 ن7' ( وأنhexadecimal) ب م7&' دKن اﻝ7' اة أن#$ -2
.ً :> آ#ﻝF اﻝ.
@&( وhexadecimal) ﻝ; إﻝ] م7 .' 1وأن ﻝ
.' وﻝ:Fات اﻝ7i@ ){ اﻝt%i (destination < source) ﺡﻝ- -3
وآ#ﻝF اﻝ.
@&ات آ ) اﻝ7i
; ﺥt%i #ﻝFد اﻝ" ﻝK اﻝ%&
-:
اﻝ&ﻝCMا
1- mov ah,30h ( source) 0111 0000
mov bh,70h (destination) 0011 0000
sub ah,bh (source) 1& 1000 1111+
ah = C0
1011 1111
0100 0000 1+
1011 1111 0100 0000
1+
( ــ4 0)
1100 0000
C 0
19 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
2- mov bx,-30h
mov cx,20h
sub bx,cx
(-30) #ﻝF اﻝ.
@& اﻝ#$ * اﻝﻝ+ ه
0000 0000 0011 0000 0030
1111 1111 1100 1111
1+
bx = F F B 0
-:(H.W) واﺝت#=
1- mov al,79h
sub al,-1
al=?
2- mov eax,-64
mov bx,-13
sub ebx,eax
ebx=?
3- mov bx,0A332h
mov ax,60
sub ah,bh
ah=?
4- mov eax,-22
sub ax,-3
ax=?
20 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
5-Neg Instruction
(2'complement ;ﺥ ) ﻝKد اﻝKز ﻝ'{ أﺵرة اﻝjا ا+م هK@&F
-: ز هjا ا+ اﻝ ﻝ0واﻝ
1- neg reg ex\\ neg ax
2- neg mem ex\\ neg r
-:
اﻝ&ﻝCM وآ اQ
اRS!ات ا7iا; ){ ﺥK@&> ا//ﺡ
1-mov al,5h 0000 0101
neg al 1111 1010
al=FB 1+
1111 1011
F B
2-mov al,-5h
neg al
al=05
3- mov eax,30h
neg ax
ax=0000FFD0
-:(H.W) واﺝت#=
1- mov ax,-33
neg al
al=?
2- mov eax ,88
neg ax
ax=?
3- mov bh,40
neg bh
neg bx
bx=?
21 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
.data
x dd 10h
y dd 20h
z dd 30h
n dd 40h
r dd 00h
.code
start:
mov eax,y
sub eax,z
22 ا
اق ادﺱ أاد ا
ا
ا
ا
masm32 ﻝ------------ات
ر
23 ا
اق ادﺱ أاد ا
ا
ا
ا