View
13
Download
0
Category
Preview:
Citation preview
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��١ ا��اق ا���دس�� ��
������ ا����� ب� 32masmه�
.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(و�>%; ح:� � ال%����� ) ال+اآ�ة�7ا56 ( ال�&� �ات � ه+ا ال$3ء �&1 ال&��0/ �.
ل�� ��<'�ل
.code start:
� ل�� ��<'�ل ) begin( و�>%; �� ا���Bزات ال@�ص� ��ل%������ ه+ا ال$3ء �&1 آ&�
invoke ExitProcess,0 5ة%�رال� ه+*�$# و����� .ال%����� �%6 �
���� ال%����� و">%; � �C�")end. (ل�� ��<'�ل � . end start
أ#اع ا��!��ات
D%ح� ال@�3 � و":�س ��ل�Fال� #Fث�ث أ�7ع �. ال�&� �ات أو �7ا56 ال+اآ�ة وح ���Kل K7ج"
-:وا7�Mاع ه
١- db @&�0 ل�%�رة� وه )data byte ( �� .bit 8وح$�٢- dw @&�0 ل�%�رة� وه)data word ( �� .bit 16وح$�٣- dd @&�0 ل�%�رة� وه)data double ( �� .bit 32وح$�
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��٢ ا��اق ا���دس�� ��
آ�)�� ا�!�ی& � ا��!��ات
���" K:ل�� R�� �C����<'�ل ��K��� ��K أن ل�� � ال��ت آ ( � ال&��0/ �. ال�&� �ات و��ل0 �� ال&�ل � ) var(��0ح �. �&� � �'7ن ��:�
var x:integer;
أس, ا��!��: ا�*#ع ; أي أن ال0 �� "'7ن
��آ�� ذآ��� <��:� و��ل>'� ) data(�'7ن ال&��0/ �. ال�&� �ات � ح:� ) masm32(أ�� � -:ال&�ل
ا����� ا.ب!�ا-�� ا�*#ع أس, ا��!�� ��وآ�� C�Mال&�ل �ا :-
.data r1 dd 30h r2 dw 20 k db 00111011b
أو �(XXX ال&���(�XXXت )hexadecimal( "&����XXX�� 5XXX� �XXXم masm32)(ل��XXX //�2ح0///�� ح�ل� ذآ� ال�16 Z وج7د ث�ث ص ��ح�B �:��Fم ال&����0ت ال���ذل\ أن ال�16 ��ل ]��� ^:�
���[ ذل\ أن ال�16 �'&7ب ) h(أ�� أذا ج�ء ��K ال�16 ح�ف ) ١٦ال�� "�7ل; إل[ ���م ( ال�>�ي���&; ح�ف ) ٠،١( أ�� أذا آ�ن ال�16 �%�رة �. �١٦���م � � �'&7Xب ���[ ذل\ أن ال�b ( 16(و
e��Cم ال���ل��.
[ ال�Kد ١٦ ال���م الإل[ل&���7 �. ال���م ال�>�ي // ��ح��� 1F:� ١٦f آ �C�� "@3ن �� 6r2 r2 dw 20
16 20 4 16 1 1 0
�)>Mإل[�'&# ال�16 �. ا ]�Mر ا�F أي أن 6 �� ال � .إل[ و�. ال r2 14 هh e��Cخ+ آ� أر�5 ١٦ الإل[أ�� ال&���7 �. الh� bits م���� �� و�!5 ��'���� ال�16 ال+ي �:��
���C ١٦ال k db 00111011b
)B أي ١١(���C ال�16 ١٠١١ )٣(���C ال�16 ٠٠١١
3B ه� k أي أن �6��
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��٣ ا��اق ا���دس�� ��
)PrintHex (أی��ز ا�����9
[ ش�ش� ال&�( + و"'7ن الi%��� ل�F$�ت أو �7ا56 �ا���jز ل�%i��K@&Fم ه+ا � ح hexadecimal l و"'7ن ال�& $� ����م 32bitذات ال�$1 ) ال�&� �ات(ال+اآ�ة
. �$# أن "'&# آ% �ةP,H)(أن ح�ف
)Register(أ#اع ا���=2ت
�$Fال�)register:(- .� ل\ ث�ث أ�7ع��وه ���%�رة �. �'�ن خ�3 ���وف ح$�; لKى ال -:ال�F$�ت
eax,ebx,ecx,edx,esi,edi,esp,ebp -: وه F�32 bit$�ت ذات ح1$ -١
ax , bx , cx , dx , si , di , sp , bp -: وه bit F�١٦$�ت ذات ح1$ -٢
ah , al , bh , bl , ch , cl , dh ,dl -: وه bit F�١٦$�ت ذات ح1$ -٣
�C�� � �7" �'شeax register 16 bit ax
al
8 bit ah
8 bit
٣٢ bit eax
)Transfer Instruction (أی��زات ا�*�<
mov instruction-1 -:أن ح destination ( lإل[ source( ل�nF ��&��7ت ه+ا ا���jز�K@&Fم
source : -�� :; ال�ال�'�ن ال+ي "@�ج � . destination: - �� :ال ; � �:&F" ال�'�ن ال+ي .
-:وال0 �� ال���� ل�+ا ا���jز ه
mov destination , source
. source� �&"B 6 �� ال -١//��ح�� . �&�Fو�. ��ل��source=destination 1$$# أن �'7ن - ٢
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��٤ ا��اق ا���دس�� ��
A�mov ا����#�� @ی��ز ا��1- mov register, register ex\\ mov eax,ebx 2- mov register, memory ex\\ mov ax,var1 3- mov memory, register ex\\ mov y,edx 4- mov register,6 �� �%�ش�ة ex\\ mov ah,70h 5- mov memory,6 �� �%�ش�ة ex\\ mov k1,55h
��ح��ت)�&� ��.( �B$7ز ال�:� � . ��67 ذاآ�ة -١
mov memory, memory ex\\ mov x, r1 false
٢- cs, eip, ip أن �'7�7ا .'�� B destination mov eip , eax false
إل[) 10h(اآ�ة و6 �&; ل�nF ��&��7ت �567 ذmasm32 أآ&# ������ ��� //س
�$F�)register ( �C�eax؟
.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
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��٥ ا��اق ا���دس�� ��
��� آ�)�� DEن ا��
��e�6 .�file ر�&@� save as أو save� ة ال&�ل+� -: <7ف "��� ل�� ال��
� C�ali� أ<1 ال%����� ��asm *K. �'&# اB<1 و�$# آ&���file name ح:�
� ح:� #&'�file name ali.asm ] أو �[ save و��Kه� �!�^ �)Enter ( .�)Keyboard. (
ال�7ج7دة � ش��^ saveة ا �$# ال!�^ �[ أدإ������K آ� "���K أو // ��ح�� . ل�(q ال&� �اتاMدوات
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��٦ ا��اق ا���دس�� ��
��� آ�)�� ت*)�G ا��١- ��e�6 .� Project ر�&@� Assemble ASM file ة+� <7ف "��� ل�� ال��
-:ال&�ل �
��XXت �� KXX��XX%رة r أذاAssembling رة�XX%� ة�XXش�%� Volume in drive ]XX���
C7ة الXi@ال ]Xإل �X:&�� / �Xول[ صM7ة اi@ال �1 "���X ذل\ أن ال&�( + Xأذا ل �Xأ� ،�X �� . ثK �� 1 ال&�( + ��save�[ ذل\ أن ال%����� � ; خhi ���0; و�!�^ �[ اMداة
٢- �XX�e�6 .XX� Project ر�XX&@� Assemble & Link ة+XX� <7XXف "���XX ل��XX ال��
-:ال&�ل �
���[ ذل\ أن error آ�� Press any key to continueأذا ل1 "��� 6%� �%�رة ��ت آ�� ال&�( +r ص� / أ�� أذا � ��C7ة الi@ال � error s و��0/ ال���+ة ��
] .و�� K ال@7iة اMول[ والsave � ��C اMداةال%����� و�!�^ �
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��٧ ا��اق ا���دس�� ��
٣ - ��e�6 .� Project 7خ � وهMر ال@ �ر ا�&@� Run program ��ل �� <7ف �� -:��"� ال&�( + آ�� � ال���+ة ال&�ل �
ل+ل\ �'7ن �Kد bit 4 آ� �Kد � ; ��&�ج إل[ ���hexadecimalم // ��ح�� ر6�� bit 8أو ال�F$�ت �. �7ع ) ال�&� �(اMر�6م ال& �hخ+ه� �567 ال+اآ�ة
. أر�6م M����bit 32 أر�6م و ذات ح$1 أربbit L 16أ�� ذات ح1$ �:Kر ال�Kد أص)�رKدة �!5 ال��اMر�6مح�ل� وج7د �Kد أر�6م أ�6 �. �//��ح��
7ب �. ج�� ال �Fر iال�"tل ا�Cال� � -: وآ�� mov ax,16h
� ه+* ال��ل� "'7ن 6 �� ax 0016 هh نB ax 1$16 ذات ح bit إل[ و��&�ج .أر�5 أر�6م
mov eax,2h � ه+* ال��ل� "'7ن 6 �� eax 00000002هh نB eax 1$32 ذات ح bit
.� � أر�6م و��&�ج إل[ ث��
��Oأ� ��#�=�:- 1- mov al,66h
ال�16 �@3ن ��ل>'� ال&�لeax=00000066 ax=0066 ah=00 al=66
eax
66 ٠ ٠ ٠ ٠ ٠٠ al ah
ax
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��٨ ا��اق ا���دس�� ��
2- mov ebx , 40 ) hexadecimal( ���م إل[� ه+* ال��ل� �$# "���7 ال�16
16� 28h ه ٤٠"'7ن ال: �� ال�:��� لebx=00000028 bx=0028 bh=00 bl=28
3- mov dh,9h edx=00000900 dx=0900 dh=09 dl=00
Qا���� � R�S!آ�)�� ا�
. ل1 �'. ��7ل; آ�� ذآ��� <��:�وإذا) Hexadecimal(أن �'7ن ال�16 ����م �$#- ١٢ -e��Cم ال���ل# إل[ ال�Fل�� ]i��7 ال�16 ال���" ) binary system( #Fوح
��7 ل'� ح1$iر�6م ال�Mد اK�. .٠ إل[ ١ وآ� ١ إل[ ٠وذل\ �:# آ� ) F� ) 2'complement&@�ج ال�&�1- ٣٤ - 5� 5�$� ٠=١+١ ، ١=٠+١ ، ١=١+٠ ، ٠=٠+٠ (١ K ١ و��ل.( ).hexadecimal( ��7ل ال�Kد ال��"� إل[ - ٥
��Oأ� ��#�=�:- 1- mov ax,-30h
إل[ و��&�ج 16bit ذات حB ax 1$ن 0030 ال�Kد ����م ال�Fدس �>� و�'&# - ١ مأر�5 أر�6
� 0%/إل[��7ل ال�Kد - ٢ e��Cم ال���ال :- ٠٠٠٠ 0011 ٠٠٠٠ ٠٠٠٠
١١١١ ١١١١ 1100 ١١١١ ال�&�1 ه7 - ٣ ١ + �$�5 �5 ال�16- ٤
١١١١ ١١١١ ١١٠١ ٠٠٠٠ D F F ٠ ال��"� ه7 - ٥
eax=0000FFD0 ax=FFD0 ah=FF al=D0
40 16 ٨ 2 ١٦ ٠ ٢
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��٩ ا��اق ا���دس�� ��
2- mov eax,-3h z)� s %i&� :- eax=FFFFFFFD ال@7iات ال��F:� �'7ن ال��"� ه7
ax=FFFD ah=FF al=FD
3-mov eax,-1 eax=FFFFFFFF ax=FFFF al=FF ah=FF
eax اMول two registerل&%��K � . ��&��7ت masm32 أآ&# ������ ���//س ؟90h وebx ;&� 6 وال��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
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��١٠ ا��اق ا���دس�� ��
)W.H(� واج��ت �=�#� k ه7 اMول �:7م ��ل&%��K � . ��67 ذاآ�ة masm32 أآ&# ������ ��� //١س
؟mov أ���ز ��<&@Kام 10h وn ;&� 6 وال��C 30hو6 �&;
ال�&��e //٢س ؟ �(+ ال@7iات ال&�ل � وأ�1- mov ax,9Bh eax=? ax=? ah=? al=? 2- mov bh,1001b ebx=? bx=? bh=? bl=? 3- mov edx,-19 edx=? dx=? dh=? dl=? 4-mov ah,10h mov bx,ax ebx=? bx=? bh=? bl=? 5- mov dx,-30 mov bh,dh ebx=? bx=? bh=? bl=?
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��١١ ا��اق ا���دس�� ��
-:أذا ��D أن ال�&� �ات ����� ��ل>'� ال&�ل //٣س.data r1 db 00000010b r2 dw 20h r3 dd 10h
ال��"� ( �hي �. ال�%�رات ال&�ل � ص� �� وأي ���� خ�{|� أذا آ��D ص� �� أ�hi@ال #%> ؟)وأ�� أذا آ��D خ�{|� أ�
1- mov ax,r1 2- mov ax,r2 3- mov eax,r3 4- mov r2,r1 5- mov r2, dx
Xchg Instruction-2 وال0 �� ال���� ) two operand(&��7ت ���� . ل&%��K � . ��ا���jز �K@&Fم ه+ا
-:ل; ه Xchg destination , source
-:ا���A ا����#�� �GWا ا@ی��ز ه�
1- Xchg reg , reg ex\\xchg eax,ebx 2- Xchg reg , mem ex\\xchg ax,var1 3- Xchg mem , reg ex\\xchg r1,ah
//�2ح�0ت . �$# أن "'7ن ال�����ت �&�Fو�� ��ل�1$- ١ .��B'. ال&%��K � . ��67 ذاآ�ة - ٢
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��١٢ ا��اق ا���دس�� ��
. ه�� // س$F� ��7ت&�� ��K%&� أآ&# ������ �:7مeax ;&� 666 وh و edx ؟Xchg أ���ز ��<&@Kام 39hو6 �&;
.code start: mov eax,66h mov edx,39h PrintHex eax PrintHex edx Xchg eax,edx PrintHex eax PrintHex edx invoke ExitProcess,0 end start
-):W.H(�=�#�� واج��ت
r1 �:7م ��ل&%��K � . ��67 ذاآ�ة اMول هmasm327 أآ&# ������ ��� //١س ؟K@&>�� Xchgام أ���ز 100h وr2 ;&� 6 وال��C 220hو6 �&;
ال�&��e ؟//٢س �(+ ال@7iات ال&�ل � وأ�
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
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��١٣ ا��اق ا���دس�� ��
}v with Zero ExtendMo{ movzx -3 و�:7Xم �&destination ( 5 X>7 (إلX[ ) source(�:7م هX+ا ا�X��jز ���X�7&�� nFXت إل
bit 32 أو bit 16 ج�� ال �Fر ل 0%/ ال�$1 أ�� إل[ أص(�ر �~����ال: �� destination > source - :أي أن
-:وال0 �� ال���� ل; ه
movzx destination , source
-:�#�� �GWا ا@ی��ز ه� وا���A ا���
1- movzx r32,r8 or m8 ex\\ movzx eax,bl 2- movzx r32,r16 or m16 ex\\ movzx edx,r 3- movzx r16,r8 or m8 ex\\ movzx bx,al
.وdestination ( � �&" B(أ�6 �. ) source(6 �� إل// �2ح�0
ال�&��e ال&�ل � // ��Cل -:أ�
mov bx,0A69Bh movzx eax,bx eax =0000A69B movzx edx,bl edx =0000009B movzx cx,bh cx = 00A6
. ه7 رA16 ال+ي �s%F ال�16 � ال��Cل الs��F دBل� �[ أن ح�ف ٠ر16 // ��ح��
} ExtendsignMov with {xs mov-4 و�:7Xم �&destination ( 5 X>7(إلX[ ) source(�:7م هX+ا ا�X��jز ���X�7&�� nFXت إل
��� ح�ل آ��D إل[ ج�� ال �Fرأص)�رال: �� �~�� EX bit ذا آ�Xن إ وص)/EX bit #١ ه Y�Zی )s(1 واح/�ات �:��� آ� أي أن L/أرب Y�Z/ف ی 0X%/ لF ا��/
bit 32 أو bit 16ال�$1 أ�� destination > source - :أي أن
-:وال0 �� ال���� ل; ه
movsx destination , source
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��١٤ ا��اق ا���دس�� ��
-:وا���A ا����#�� �GWا ا@ی��ز ه�
1- movsx r32,r8 or m8 ex\\ movsx eax,bl 2- movsx r32,r16 or m16 ex\\ movsx edx,r 3- movsx r16,r8 or m8 ex\\ movsx bx,al
.وdestination ( � �&" B(أ�6 �. ) source(6 �� إل// �2ح�0
ال�&��e ال&�ل � // ��Cل -:أ�
mov bx,0A69Bh movsx eax,bx eax =FFFFA69B movsx edx,bl edx =FFFFFF9B movsx cx,bh cx = FFA6
ت#ض�& �� 6bx ه A69B 7أن �خ� ر16 ه qح�� A 167ل ال��� A e��Cم ال���إل[ ال
�. ج�� ال �Fر ه7 واحK أذا �! f واحKات ل bit /%0 ��حq أن �خ� 1010 -: آ�� ��ل>'� ال&�ل bit 32ال�1$
١١١١ ١١١١ ١١١١ ١١١١ ١٠١٠ ٠١١٠ ١٠٠١ ١٠١١
B 9 6 A F F F F
-):W.H(�=�#�� واج��ت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=?
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��١٥ ا��اق ا���دس�� ��
structionArithmetic In
1- Inc Instruction
.)operand( إل[ ١ب^ض�[� �:7م ه+ا ا���jز
-:وال0 �� ال���� ل�+ا ا���jز ه 1- inc reg ex\\ inc ax 2- inc mem ex\\ inc r
��O�_ا � ��#�=�:-
1- mov ax,30h inc ax ax =0031h
2- mov ax,30 inc ax
) hexadecimal( إل[ ���م ٣٠� ه+* ال��ل� �$# "���7 ال�16 16 30 16 1 E 0 1
ax = 001F "0%/ ال: �� inc و��s %i" K أ���ز ax =1Eأي أن 6 �� -):W.H(�=�#�� واج��ت
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=?
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��١٦ ا��اق ا���دس�� ��
dec Instruction-2 ) .operand( �. ال ١ب^��ص �:7م ه+ا ا���jز
-:وال0 �� ال���� ل�+ا ا���jز ه
1- dec reg ex\\ dec ax 2- dec mem ex\\ dec r
��O�_ا � ��#�=�:- 1- mov al,1 dec al al = 00 2- mov ah,7 dec ah ah =06 3- mov ax,40 dec ax
) hexadecimal( إل[ ���م ٤٠� ه+* ال��ل� �$# "���7 ال�16
0 ٤16 16 2 8 0 2
ax = 27h "0%/ ال: �� dec و��s %i" K أ���ز ax =28hأي أن 6 �� 4- mov al,-7 dec al
� �. ال�Fل#@&� 0000 0111 al=F8 1111 1000
+١ 1111 1001
1- 1111 1000
٨ F
-):W.H(#�� واج��ت�=�1- mov al,-30 dec al al=? 2- mov bx,-79 dec bh bh=?
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��١٧ ا��اق ا���دس�� ��
Add Instruction-3
والdestination ( �� 0( إل[ ) source(�:7م ه+ا ا���jز �~���� ��&��7ت ال -:ال���� ل; ه
add destination, source //�2ح�0ت
. � � �&�Fو�& . ��ل��B 1$$7ز ج�5 آ� & .-١ . �B$7ز ال$�5 � . ��67 ذاآ�ة-٢٣-5XXXXX�$ت ال�XXXXX �� )add (ح�XXXXXiوال)sub ( KXXXXXار واحKXXXXX:�� �0نXXXXX:�دة وال�XXXXX�3وال )inc&dec ( ] .)flag register("�ث� �٠=١+١(، ) ١=٠+١(، ) ١=١+٠(، ) ٠=٠+٠(-٤ K ١ و��ل.(
��O�_ا � ��#�=�:- 1- mov r1,20h mov eax,40h add eax,r1 eax = 00000050
٠٠١٠ ٠٠٠٠ +٠١٠٠ ٠٠٠٠ ٠١١٠ ٠٠٠٠
٦ ٠
2- mov bl,40 mov ah,32
add ah,bl ٠٠١٠ ١٠٠٠ ٠٠١٠ ٠٠٠٠ ٠١٠٠ ١٠٠٠
bl= 28h ٤ ٨ ah =
ah=20h
٨ ٢
٤٠ 2 0
16 16
٠ ٢
٣٢ 2 0
16 16
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��١٨ ا��اق ا���دس�� ��
٠٠١٠ ٠٠٠٠) source( ٠٠١٠ ٠٠٠٠) destination( +١١٠١ ١١١١ 1�&� )source(
١١١١ ١١١١ +١
٠ ٠
-):W.H(ج��ت�=�#�� وا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
Instructionsub-4
والdestination ( �� 0( ال �.)source( ��&��7ت ال��iح�:7م ه+ا ا���jز -:ال���� ل; ه
sub destination, source ; �(z ش�وط ا���jز //��ح��� s%i"add.
أجاء ����� ا�9حآ�)��
.إل[ ال���م الC��e destination ((و ال) source( ��7ل ال - ١ .٠ إل[ ١ و١ إل[ �٠:# وذل\ ) F� )source&@�ج �&�1 ال- ٢ ).source(�5 �&�1 ال) destination( �$�5 ال- ٣ . أو �5 ال7احcarry(K(5 ال��"� �5 ال �$�- ٤ ).hexadecimal( ��7ل ال�& $� ال���e � إل[ ���م ال- ٥
��O�_ا � ��#�=�:- 1- mov al,20h sub al,20h al=00
٠٠٠٠ ٠٠٠٠
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��١٩ ا��اق ا���دس�� ��
٠٠١١ ٠٠٠٠) source( ٠١١١ ٠٠٠٠) destination(
+ ١١١١ 1100 1�&� )source(
١ ٠٠١١ ١١١١ +١ ٠١٠٠ ٠٠٠٠
٠١١١ ٠٠٠٠) source( ٠٠١١ ٠٠٠٠) destination(
+ ١١١١ 1000 1�&� )source(
١٠١١ ١١١١ +١ ٠١٠٠ ٠٠٠٠
2- mov eax,70h mov ebx,30h sub eax,ebx eax = 00000040
3- mov al,66h
mov bh,50h sub al,bh al=16h
4- mov eax,80h mov ebx,60h sub eax,ebx eax = 00000020
//�2ح�0ت� ح�ل� - ١ )destination >= source ( #Fو��� ح �'<� K7ج"B
�:��F7ات الi@ال. وأن �'7ن �7ج# ) hexadecimal( �$# ��ا��ة أن �'7ن ال�Kد �'&7ب ����م - ٢
.و�&@� �. ال�Fل# آ�� � �� <��:�) hexadecimal( ���م إل[وأن ل1 �'. ��7ل; � ح�ل� - - ٣ )destination < source ول'. ) �:��F7ات الi@ال z(� s%i�
; خ7iات آ ( � � s%i� #ل�F"� ��ل��د الKل#��&%� ال��Fال .� � وآ�� � ال&@� ال&�ل �C�Mا:-
1- mov ah,30h mov bh,70h sub ah,bh ah = C0
٤ ٠
ــ) ٤ ٠(
٠١٠٠ ٠٠٠٠ ١٠١١ ١١١١ +١
١١٠٠ ٠٠٠٠
٠ C
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��٢٠ ا��اق ا���دس�� ��
2- mov bx,-30h mov cx,20h sub bx,cx
� ه+* ال��ل� �$# ال&@� �. ال�Fل# )-30( ٠٠٠٠ ٠٠٠٠ ٠٠١١ ٠٠٠٠ ٠٠٣٠
١١١١ ١١١١ ١١٠٠ ١١١١ + ١ ١١١١ ١١١١ ١١٠١ ٠٠٠٠ bx ) destination( ٠٠٠٠ ٠٠٠٠ ٠٠١٠ ٠٠٠٠ cx) source(
١١١١ ١١١١ ١١٠١ ١١١١ 1�&� )source( 5�$�)destination ( 1�&� 5�)source(
١١١١ ١١١١ ١١٠١ ٠٠٠٠) destination( ١١١١ ١١١١ ١١٠١ ١١١١ 1�&� )source( ١ ١١١١ ١١١١ ١٠١٠ ١١١١
+ ١
١١١١ ١١١١ ١٠١١ ٠٠٠٠
٠ B F F bx =
-):W.H(�=�#�� واج��ت
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=?
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��٢١ ا��اق ا���دس�� ��
٥-Neg Instruction ) complement'����2 ل; (�K@&Fم ه+ا ا���jز ل�'z أش�رة ال�Kد ال�Kخ�
-: ه ا���jزوال0 �� ال���� ل�+ا 1- neg reg ex\\ neg ax 2- neg mem ex\\ neg r
ا����Qا<&@Kا�; �(z خ7iات // ��ح��� R�S!ال&�ل �ا� �C�Mا � -: وآ�� 1-mov al,5h neg al al=FB
2-mov al,-5h neg al al=٠٥ 3- mov eax,30h neg ax ax=0000FFD0 4- mov ah, 30h neg ah eax=0000D000
-):W.H(�=�#�� واج��ت1- mov ax,-33 neg al al=? 2- mov eax ,88 neg ax ax=? 3- mov bh,40 neg bh neg bx bx=?
0101 ٠٠٠٠ ١١١١ ١٠١٠ +١ ١١١١ ١٠١١
B F
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��٢٢ ا��اق ا���دس�� ��
� آ� دل� ال&�ل � ل�� ال���masm32أآ&# ������ ��� // ١س �e�&�ء ال�i�5 أ� -:خ7iة
r = -x +(y-z) �� أن �x =10hو y=30h و z=60h 1$32 وال�&� �ات ذات ح bit.
.data x dd 10h y dd 60h z dd 30h r dd 00h .code start: mov eax,x neg eax PrintHex eax eax=FFFFFFF0 mov ebx,y sub ebx,z PrintHex ebx ebx=00000030 add eax,ebx mov r,eax PrintHex r r=00000020 invoke ExitProcess,0 end start
� آ� ل�� ال���دل� masm32أآ&# ������ ��� // ٢س �e�&�ء ال�i�ال&�ل � �5 أ -:خ7iة
r = - (x -(y-z)+n) �� أن �x =10hو y=20h و z=30h و n=40h 1$32 وال�&� �ات ذات ح bit.
.data x dd 10h y dd 20h z dd 30h n dd 40h r dd 00h .code start: mov eax,y sub eax,z
masm32 ل�� ------------�����ات �� ����ر��
��� ا���� ا���ا� ا�أ��اد�� ��٢٣ ا��اق ا���دس�� ��
PrintHex eax eax=FFFFFFF0 mov ebx,x sub ebx,eax PrintHex ebx ebx=00000020 add ebx,n neg ebx mov r,ebx PrintHex r r=FFFFFFA0 invoke ExitProcess,0 end start
-):W.H(�=�#�� واج��ت ١ - ��� آ� masm32 أآ&# ������ � �e�&�ء ال�i�ل�� ال���دل� ال&�ل � �5 أ
-:خ7iة )k = - (x +y-(z-n)
�� أن �x=22و y=20h و z=3 و n=40h 1$16 وال�&� �ات ذات ح bit. ٢ - �� �sub 5م أ���ز ل�� ال���دل� ال&�ل � و�Kون ا<&@Kاmasm32أآ&# ������ �
� آ� خ7iة �e�&�ء ال�i�أ:- r = x-y-z
�� أن � x=44وy=50 و z=30h 1$32 و ال�&� �ات ذات ح bit. ٣ - ��� آ� masm32أآ&# ������ � �e�&�ء ال�i�ل�� ال���دل� ال&�ل � �5 أ
-:خ7iة z=(x+y)-(r-n)
�� أن �x =11hو y=100h و r=30و n=55h32 ح$1 وال�&� �ات ذات bit. 4- ��� آ� masm32أآ&# ������ � �e�&�ء ال�i�ل�� ال���دل� ال&�ل � �5 أ
-:خ7iة z=-y+r-(n+w)
�� أن �y =10hو r=606h و r=30و n=55h و w=40 1$وال�&� �ات ذات ح32 bit.
٥ - ��� آ� masm32أآ&# ������ � �e�&�ء ال�i�ل�� ال���دل� ال&�ل � �5 أ
-:خ7iة z=(2x+2y)-(r+(-n))
�� أن �x =1hو y=10h و r=30hو n=5h 1$32 وال�&� �ات ذات ح bit.
Recommended