You are on page 1of 25

 ‫א

א‬
 
‫א‬

‫א"! א‬#$%"‫*א")('&א‬+,-‫א‬8088 ‫  א א א‬
#./01- 21345 6)78$‫א‬#9:5 (‫א‬#./01-7 .;< :=## $ 78$‫א‬
 .#( ‫א‬#9>? .;@A13‫א‬5 =
#A9-I .5 (‫א‬#.C‫! א‬#6 ). D*-0‫א‬E#0‫א‬#. 8‫ א‬4 F#.GH
.#6 )F‫א‬# )J‫א &א‬-0‫א‬4&1 F‫א‬7A1-0‫א‬4KL-)1 /01M‫א‬7 ‫א& א‬N."‫א‬O9-
R 1ST<!-0‫א‬UR T<!V032914PQ'G‫א‬/01M@‫א‬72;‫א‬L-)#9:‫א‬
 $@A 7 .;‫@א‬Y#6 )F‫א&א‬T‫א א‬K@‫ א‬%‫א‬Z ،X 2"R N 4T<!&1 F
 .[‫א‬- \‫ &א\ א‬+
 .# a:‫?א‬D/01M‫א‬7 .;#]‫א‬#.^_5 (‫א‬#./01-79`# $  Z #9:‫א‬
 −:
‫ א‬
# bAssembler*)9/01-#6‫א‬#]‫א‬#.5 (‫א‬#./01-79`Z9
-0‫א‬E@‫א‬72;‫א‬T<e‫*אא‬f،Assembler‫א‬: +,-9*Qc dc?8& ‫א‬
 .#0 %)"‫א‬
34hAf Q‫א‬-04*+-67ijk l-0‫א‬U‫א‬4& ‫א‬V0+gV0/01M‫א‬329
 .& ‫א‬V0m+1n
&‫א‬p9\‫א‬#]‫א‬#._:9qAssembler‫@א‬A9o‫א‬Instructions& ‫א‬4-0‫א‬U‫א‬
s 8t7u0 r‫א &א‬KF@ AAssembler&‫א‬p9_*Assembler-Directives
 .*+-f/01-  dN."-‫אא‬V0T<!
 ?8‫ א‬H5 (‫א‬#.-0‫א‬U‫א‬7
NAME OPERATION OPERAND(S) COMMENT
*+ Q‫א‬w‫א‬-fx329G4(SPACE)-6)"‫א‬4TAB‫א‬v$0#6‫א‬AJ‫א‬m78$‫א‬Z9 •

 .‫א‬7AJ‫א‬7AQ7m7yU‫א‬
0T<!(/01M‫א‬V0-6)‫){אא‬-0U‫{אא‬59-$# +| Q#QNAMEZz‫ א@א‬%‫א‬Z9 •

 .G?  ‫א‬7AQ/01M‫א‬V0
 .c $6"‫א‬-0U‫*א‬+ijOperation7AJ‫א‬ •

-16- SUST
    :  
___________________________________________________________
 9 r‫א‬-0U‫א‬#6‫ א‬$6"‫'&א‬0"‫א‬470"‫*א‬+ijOperation(s)7AJ‫א‬ •

 .(7AJ‫ ! אא‬6z-0‫א‬U‫א‬Kx34PQz).-0U‫€א‬1*+


 ./01M‫ ‚א‬S@ %)9J‫א‬-0U‫*א‬+‚  +@ %)9Comments‫&א‬q"‫א‬7AQ •

   
Srart: MOV CX , 5 ; initialize counter
Zy-‫א‬5nƒ*05Zy-‫א‬CX&'0"‫א‬MOV@ %)"‫א‬-0U‫א‬Start3‫א‬+ƒ-0U‫א‬c
 . ‫ א‬# a‫ א‬z‫א‬# A‫א‬5349&YQ'"‫א‬7AQCX7()"‫א‬5
 :&‫א‬p9„u0
Main Proc
  ‫"!א‬#‫א‬V+| q9 f.Main Z(T‫א‬-!_) +-f/01-O9-@A9p9\‫אא‬
 :  $
 Name Field%‫'"א&!א‬
T†43'+\n+-f/01MZ‫א‬T6+\4 d-0U3‫א‬+T6+\7AJ‫ א@אא‬%‫א‬Z9
 .-‫אא‬V9+_7AJ‫אא‬79`Z9،&‫א‬N."‫א‬
n7AJ‫א‬7 ‫& א‬f)0 !v)0Nˆ,-Q31*Q67AJ‫אא‬32934V2‡
NF2‫א‬,-J‫א‬m‚9-$‫א‬Z9zZy-4 F9zZz‫א‬#9‫ א‬z_“.”,-J‫ @א‬%)9z
 . fN.8‫א‬
 :#FA0T†U#u04
start – counter - @character – sum_of_digits - $1000 – done? -.test
 :#FA0NˆT†U#u04
two words &ˆ‫א‬-f+Gj
2abc Zy-4 F9
   a45.ab %& ' (.)    !

 Operation Field()*‫'"א )א‬


i Q_3234 b-6)‫ אא‬$6"‫א‬OpCode-0U‫א‬+7AJ‫אא‬Gj
@A k QAssembler‫א‬/01M‫א‬#e‰@A G‫א‬/01M#f-"‫א &א‬
Z #f-0& :MovAddSub& ‫א‬nu#]‫א‬#._:9q
 .C AQz7 8$:+k9 J‫א‬

17 SUST
    :  
___________________________________________________________
Assembler‫?א‬6 \:2#]‫א‬#.:9`Z9'fPseudo-Op‫א‬Cp9_Š1‫_ƒא‬04
 Procedure+-f/01-O9-@ %)ProcC'u0 dT;@A 

 Operand Field, ‫'"א‬
J‫א‬-0U‫ א‬$Z o‫אŠא‬S&‫א‬N.0&'()0V0&'0"‫א‬+7AJ‫אא‬Gj
z4 Q‫א‬# y4m y+Gj347AJ‫{אא‬V2‡('C u05e‫א‬# +7u0) : +
 nƒ# ‫א‬#u0U‫ @א‬%)"‫א‬-0U‫€א‬1 )Qnƒ‹'I\‫א‬+# yG4+Gj
 , ‫א‬  )*‫א‬
 &'00 !z  NOP
 CX7()"‫ א‬Q‫א‬700 !9  INC CX
 2Zy-‫א‬Word1N."‫א‬3'00 !9  ADD Word1 , 2
*)9 f#( ‫א‬V9<tZ G‫א‬U‫א‬70"‫א‬329m0"‫ƒא&א‬AJ‫א‬#Q
PQz)-‫ אא‬d5y04&'()"‫ א‬Q40_329destination Operand€ )"
Source ? 8"‫א‬+Gq f1u‫א‬70"‫א‬04(C'D4#( ‫א‬V9<%@Az-0‫א‬U‫א‬K34
 .J‫א‬-0U‫ א‬$  yN .Z9z +Operand
 .p9\‫א‬V+# f_&00+ +70"‫א‬Gq f&‫א‬p9„#F)04

 Comment Field-', ‫א‬." ‫'"א‬
 @A90 +J‫א‬-0U‫א‬+&A /0M"‫א‬V0&YQ'0+7AJ‫אא‬Gj
.:fc +)/01M‫א‬4-A9 ys%ŒGU $032 y# f_&00G4-0U‫א‬#$ 
+:=Z9#IA"‫א‬#D$‫א‬c 5A?F+G4";"#IA"‫א‬#D$7AJ‫אא‬T Z9
 .&YQ'0:14
V01Žfv-;‫א‬KF: f& ‫`[א‬5 (‫א‬#.3UV2G?  ‫א‬7AJ‫אא‬34Zˆ?
‚ 5Z90 +N)$[j4‫א‬Nˆ-04G4+&A 5Z9347fU‫א‬
. "‫א ‚א‬5# $ V+V0<‫?א‬-‰M‫א)א‬Z9/01M‫א‬-64V0-67+
 : 0Nˆ‫א ‚א‬C'uf
MOV CX , 0 ; move 0 to CX
 :‫א ‚א‬#Z9347fU‫א‬V03

18 SUST
    :  
___________________________________________________________
MOV CX , 0 ; CX counts terms, initialized to 0
u"‫ א‬d-Afv-Œ#Qnƒ‚ 14+70-6@‫ א‬%‫א‬C1 Q4Z9
 :‫א‬
;
; Initialize Registers
MOV CX,0
MOV BX, 0
 Program Data/01‫א‬23 ‫א‬0 4‫א‬
5070‫א‬Z95 (‫א‬#./0‫א‬-# aS@y?4?D&1 F‫א‬5070/01M‫@א‬A9
 .,-Q?D*Q4#9-;‫א‬4-;+# ‫א) א‬4# au‫?א‬8‫@א‬y?U‫א‬
 Numbers5‫א‬6*‫א‬
aSZy-‫א‬34+#z b4B,-J‫א‬:10?D# au‫@א‬y?U‫א‬#Z9 •
 Binary
 11100011b401010111B7u0 •

:34V2‡،#9:‫א‬,-Q3  "‫?א‬8‫א‬:Z9#9-;‫@א‬y?U‫א‬ •

 .–234D1345d12347u0Decimal#9-;+:14+#z d,-J‫א‬4D,-J
:14+#z h,-J‫א‬4H,-J:Zy-4 F34 b-;+# ‫@א) א‬y?U‫א‬ •

U‫א‬u"‫א‬0‫ א‬F)‫)א‬.56H40abh7u0Hexadecimal -;+# ‫ א‬


 .(ab*)"‫א‬N."‫ ‘א‬ab-;+‫א) א‬Zy-‫א‬6"‫א‬34 
 *‫א‬7$89!:‫א‬.;‫א‬
 &q0  Zy-‫א‬
 G-;+ 10011

 aS 10011b

 G-;+ 6455

 -;+‫ א‬ -456h

 (Zy-4 F9z)H6 FFFFh

 (y?Nˆ,-Q*+Gj)H6 1,234

 (H4h,-J:9’)H6 0ab




19 SUST
    :  
___________________________________________________________

 Characters<.)#‫א‬
79`C  ‫ א‬Z9‘SUDAN’ 4‘A’ 'C u0s 8‫&א‬0'+7 ‫ א‬7e‫א‬,-J‫א‬5Z9
:9<tAssembler‫א‬#6‫א‬ASCII‫ א‬-"‫@א‬y?U‫_א‬,-J‫א‬
A,-q-"‫א‬Zy-‫)א‬41hZy-‫‘א‬A’,-J‫א‬m‹-f !9znƒ*+-‫אא‬
 .-‫אא‬V9<%‫א‬# Q1V04/01M‫א‬7 ‫ א‬nƒ( e‫א‬
 VARIABLES‫א  )א‬
‫א‬i)"‫&ƒא&א‬./0‫א‬M‫א‬FG‫‘א ?א‬$15 (‫א‬#.&‫א‬N."‫ א‬
 9 ` bnƒ*+.)‫א‬2F‫א‬#.7u0High Level Programming Languages
N.072-‫אא‬320<(QZ k QN.07€1/01M‫א‬#0 %)"‫א&א‬N."‫א‬T†4
O9-‫ א‬e‫ א@א‬%
 ‫א‬Z9.N."‫א‬O9- -(‰nƒN."‫€א‬150 96
 .$9-6"‫א‬N."‫€א‬p9_7N;9k Q5 (‫א‬#.&‫א‬N."‫א‬
 ?& ‫א‬  =:>‫א‬
 -‫ אא‬Q‫א‬#1 7.;9-QN.0O9- DB (Define Byte)
 -‫אא‬m 0m1 7.;9#N.0O9- DW (Define Word )

 -‫אא‬# 0&1 #?47.;9N.0O9- DD (Define Double Word)

 -‫אא‬# 0&1 3“7.;9N.0O9- DQ (Define Quad Word)

 -‫אא‬# 0&1 -;+7.;9N.0O9- DT (Define Ten Bytes)

 .DW DB€‫א‬V0&‫א‬N."‫א‬5070@AT<e‫אא‬

 :Byte Variables @)#‫אא‬A ‫א‬
 :# ‫?א‬8# f-J‫א&א‬N."‫א‬O9-Z9
Name DB Initial_Value
 'C u0
Alpha DB 4
 y5Z9Alpha†‫א‬-‫ אא‬Q‫א‬1 7.;9N.0O9-p9\‫@אא‬A9
 .N."‫אא‬4?‫ א‬A0# a‫א א‬
 .- .# a‫ א א‬y !@ +#Q(‫@)؟‬:$z‫א‬#0'+‫א‬Z9
 Byte DB ?   :u0

20 SUST
    :  
___________________________________________________________
:9<tZ9o‫@א‬y?U‫א‬#Q2550 mv‫א‬N."‫אא‬:9<tV2‡o‫א‬Z A‫א‬
:9<tZ9o‫@א‬y?U‫א‬#Q+127−128mUnsigned Numbers?Œ_3 

 .Signed Numbers?ŒŽ

 Word Variables ;‫אא‬A


Two Bytes-‫אא‬V0m1 9<tZ9Word€‫א‬V014+N."‫א‬O9-Z9
 #. 8‫ א@א‬%nƒ
name DW initial_value
 ‫א‬O9-‫א‬C'u0
WRD DW -2
  f(2–Zy-‫)א‬# a‫א א‬# y5WRDZN.0O9- fZ9
 .N.# a‫א א‬# y !@ +#Q‫؟‬#0'‫א‬5Z9# f-J‫א&א‬N."‫א‬#Q
#Q(216 –1)655350mv‫@א‬y?4V9<tword€‫א‬V0N.V2‡

 Unsigned Numbers(hAf#F!"‫_Œ?)א‬3 @y?U‫א‬


#Q(215 - 1)32767*Q(-215)32768–V0@y?U‫א‬V9<tV2‡

 ?ŒŽ@y?U‫א‬
 .Signed Numbers(#F)‫א‬#F!"‫)א‬

 Arrays@!  ‫א‬
-‫אא‬#D‫&א"א‬2‫א‬4,-J‫א‬V0#+g:14+&f$8"‫א‬507015 (‫א‬#.
Z A3Bytes-J‫א€א‬V0@y?4#S'S+G`#f$80O9-C'uf.# 0V9+
 :‫א‬O9-‫ א@א‬%‫א‬Z9 ‫א‬+30h20h10h# a‫א א‬
B_ARRAY DB 10h, 20h, 30h
B_ARRAY + 1Zz‫(א‬10h ‫)א‬,$8"‫א‬U‫א‬-8‫_א‬N;9B_ARRAYZz‫א‬
s 8t—‫_ƒא‬C'uf.ku‫א‬-8‫_א‬N;9B_ARRAY + 2Zz‫א‬1u‫א‬-8‫_א‬N;9
 :9-‫אא‬72Œ329B_ARRAYN.0200h#Q‫א‬p\‫א‬3‫א‬+
 (Symbol<0-‫)א‬Zz‫א‬  3‫אא‬  Gr‫א‬
 B_ARRAY  0200h  10h
 B_ARRAY + 1  0201h  20h
 B_ARRAY + 2  0202h  30h


21 SUST
    :  
___________________________________________________________
 O9-‫א‬C'uf&V0320,$80O9-Z9#A9-6‫‘א‬$
W_ARRAY DW 1000h, 2000h, 3000h
.  ‫א‬+3000h2000h1000h# a‫א א‬Z A-D+#S'S+Gj,$80O9-@A9
W_ARRAY +23‫אא‬# 1u‫א‬# A‫א‬W_ARRAY3‫ (אא‬1000h )^U‫א‬# A‫א‬V9-tZ9
3‫אא‬V0C‫א‬T -‫אא‬,$8"‫א‬V9<t—C'uf.‫א‬2W_ARRAY + 43‫אא‬#uu‫א‬# A‫א‬
 :9-‫אא‬72Œ329300h
 
 (Symbol<0-‫)א‬Zz‫א‬  3‫אא‬  Gr‫א‬
W_ARRAY 0300h 1000h
W_ARRAY + 2 0302h 2000h
W_ARRAY + 4 0304h 3000h

3p‫ƒא&א‬#1‫א‬V9<tZ9k Qm1 -‫אא‬:9<tZ9€‫אא‬V0&‫א‬N.34PQz
'C uf.-ŒF0‫א‬3‫אא‬High ByteMU‫א‬3p‫ƒא&א‬#1‫א‬U‫א‬#1‫א‬Low Byte7yU‫א‬
 Word1 DW 1234h:O9-‫א‬9 3‫_ƒא‬
7u‡G‫)א‬12h Zy-‫א‬word1 3‫(אא‬7yU‫א‬3p‫ƒא&א‬#1‫א‬7u‡G‫)א‬34h Zy-‫א‬V9<tZ9
 .word1 + 13‫(אא‬MU‫א‬3p‫ƒא&א‬#1‫א‬
 Character StringsB!&‫א‬.CD)‫א‬
4,-Q?D# a‫ א‬z‫א‬# A‫א‬5Z9,-J‫א‬V0#):14+R8‫א‬V9<tZ9
‘$1_39 ˜93 ‫א‬3$9-‫א‬C'ufASCII Table,-J‫! א‬,-q-"‫א‬Z A‫א‬

  f‘ABC”# a‫ א‬z‫א‬# A‫א‬5Letters†‫א‬N.0O9-#( ‫א‬


1 - Letters db ‘ABC’
2 – Letters db 41h, 42h,43h
 ‫א‬u"‫{א‬-"‫א‬Z A‫א‬,-J‫א‬Gq# a‫ א‬z‫א‬# A‫א‬/0 V2‡
msg db 0dh,0ah,’Sudan$’
Small N.8‫א‬,-J‫א‬Capital LettersNF2‫א‬,-J‫א‬m#y-$‫א‬5F6Z9

 .Letters
 E$‫א!א‬
Š‫א‬u‫א‬O9-nƒZ:$‫א‬T‫א‬-A‫א‬k QV07:4/01M‫א‬7eŠ‫א‬u‫ א@א‬%‫ א‬+Z9
+Š‫א‬u‫א‬O9-EQU (EQUate )p9\‫ א@א‬%‫א‬Z9./01M‫א‬#0 %)"‫א‬#$%"‫א‬
 :‫א‬q‫א‬


22 SUST
    :  
___________________________________________________________

name EQU Constant
  210Ah# a‫א א‬# ALF*)9ŠSO9-C'u0.Šu‫א‬Z‫א‬namek Q
LF EQU 0Ah
@‫ א‬%‫א‬V+Cz MOV AL , LF]0AhZy-‫א‬V+Cz LFŠu‫ א@א‬%‫א‬V2‡
Zy-‫_א‬/01M‫א‬7 ‫ א‬LFŠu‫א‬79qAssembler‫@א‬A9k Q.MOV AL,0Ah]‫א‬
 .0Ah
 ‫א‬u"‫ א@א‬%‫א‬2‡n
Prompt EQU ‘Type your Name’
Msg DB prompt
N.0O9-+/9z-044 ‘ p9_V+?F+EQU34PQz
 .-‫אא‬

  DD*‫א)א‬.*‫א‬7$
:0‫ א‬%‫א‬+#$%"‫  א‬A‫א‬:0‫ א‬%‫א‬# $ # U‫א‬-0‫א‬U‫א‬K+,-T<e‫אא‬
 Word2Word1Z#&‫א‬N.0Byte2Byte1Z# f-Q&‫א‬N.09 34L$
 MOV)*‫–א‬1
4#0‫א")('&א‬V0U‫א‬c- ]320V0&1 F‫א‬7A1MOV-0U‫ @א‬%)9
V0 d320#S# y(5)7A1*Q4-‫א&אא‬N."‫א‬4#D‫א")('&א‬
 -0E#0‫?א‬8‫א‬.7()0+4-‫אא‬
MOV Destination , Source
 ? 8"‫א‬# y-SHzDestination€ )"‫_א‬Source? 8"‫&א‬9d7A1Z9k Q
 'C u0-0U‫ א‬$
MOV AX , Word1
# U‫א‬# A‫ א‬AfZ95F6.AX7()"‫_א‬Word1N."‫(א‬# y)&9d™)1Z9k Q
 -0U‫א‬n.-0U‫ א‬$ AX7()
MOV AL, ‘A’
 .AL7()"‫(א‬ASCII‫! א‬A,-q-"‫א‬Zy-‫)א‬041hZy-‫א‬5@A9
 MOV-0U‫ א@א‬%‫  א‬y9‫ א‬e‫א‬


 F5!3 ‫א‬ 

23 SUST
    :  
___________________________________________________________
 E$M  A  
I" 3  H6 3
 G ‫א‬
 (J)‫א‬K‫א‬2
L!)
 v)0Nˆ  v)0  v)0  v)0  H6 3
 v)0Nˆ  v)0  v)0Nˆ  v)0  
I" 3
 v)0Nˆ  v)0Nˆ  v)0  v)0  (J)‫א‬K‫א‬2
L!)A
 v)0Nˆ  v)0  v)0Nˆ  v)0  E$M


 (Exchange)XCHG)*‫א‬−2
-‫ אא‬d5y0507()0# y‫ א‬Fz4m()0# y‫ א‬FzXCHG-0U‫ @א‬%)9
 :-0E#0‫א‬#. 8‫א‬.(N.0)
XCHG Destination, Source
:
XCHG AH, BL
 .(AHi)BLBL# yi)AH# yF8)AH, BLm()"‫א‬Z y FZ9k Q

 :
 WORD1N."‫א‬50AX7()"‫א‬# y‫ א‬F@A9‫א‬-0U‫א‬
XCHG AX, WORD1
 XCHG)*‫א‬H‫א‬D‫א‬5! L89!:‫א‬.;‫א‬

01 MOV ( ) * + , -./  F5!3 ‫א‬ 


1 ' 234 ' ()5   )6 XCHG
MOV Word1,Word2   .0  J)‫א‬K‫א‬2
L!  H6 3  G ‫א‬
+ ,786  9 4: ;< =>? =>0
:@  3 A BC D E 80  v)0  v)0  H6 3
Mov AX , Word2
Mov Word1 , AX  v)0Nˆ  v)0  J)‫א‬K‫א‬2
L!

 :ADD, SUB, INC, DEC, NEG $3#‫א  א‬−3


-‫אא‬5y07()04m()0&9dv-I45eSUBADDV9-0U‫ א@א‬%‫א‬Z9
 −:V9-0E#0‫א‬#. 8‫א‬-‫אא‬5y0507()047()050-‫אא‬5y04

24 SUST
    :  
___________________________________________________________
ADD Destination, Source
SUB Destination, Source

 -0U‫א‬C'u0
ADD WORD1, AX
N."‫א‬#( ‫א‬V9<tZ9WORD1N."‫א‬# y_AX7()"‫&א‬9d5š@A9
 -0U‫א‬n(-0U‫ א‬$ AX7()"‫&א‬9d# yN .Z9z)WORD1
SUB AX, DX
PQz)AX7()"‫א‬#( ‫א‬V9<tZ9AX7()"‫א‬V0DX7()"‫&א‬9dv-IZ9k Q
 (-0U‫ א‬$ N.zDX7()"‫&א‬9d34

 SUB.ADDN:)*‫ א‬D‫א‬5! LO4:‫א‬.;‫א‬

 F5!3 ‫א‬ 

 J)‫א‬K‫א‬2
L!  H6 3  G ‫א‬

 v)0  v)0  H6 3

 v)0Nˆ  v)0  J)‫א‬K‫א‬2


L!

 v)0  v)0  E$M

-0U‫א‬3Žf Q‫א‬-04-‫אא‬5y‫א‬0m-ŒF"‫א‬v-6‫א‬45ev)0Nˆ14PQz
 :?8‫*א‬+ +_V2‡V2v)0NˆADD BYTE1, BYTE2
MOV AL, BYTE2 ; 5e‫א‬# +7Fy7()0^_N."‫א‬# yZ9k Q
ADD BYTE1, AL
 .BL7()"‫א‬#( ‫א‬V9<tBL7()"‫&א‬9d^_5Zy-‫א‬5š@A9ADD BL,5-0U‫א‬
 FA0Nˆ‫א‬-0U‫א‬34›‰6‫‘א‬$1{V9N."‫א‬32934 b1‫œ א‬0+#YQ'
MOV AX ,BYTE1
.2-BYTEm1 I3fAX7()"‫א‬04 Q‫א‬1 BYTEN."‫א‬I3Unƒ
 (€‫‘א‬$1V03234 b(&'0"‫א&)א‬N."‫א‬34G4)

 -0U‫א‬7FA)9ASEMBLER‫ œ א‬
 (Š9n32934 b? 8"‫א‬3ŽfŠ9AH@‫ א‬0)MOV AH, ‘A’
 -0U‫א‬7FA94@A9AH7()"‫א‬41hZy-‫א‬5Z9k Q

25 SUST
    :  
___________________________________________________________
 (#n32934 b? 8"‫א‬3Žf#AX@‫ א‬0)MOV AX ,’A’
.AX7()"‫א‬0041hZy-‫א‬5Z k Q

 INC (Increment) , DEC (Decrement) , NEG)‫א‬.*‫א‬


1?‫ א‬A‰-‫אא‬5y047()0 y38A14 9p: fZ9INC ,DECV9-0U‫א‬04
 :{#0‫א‬#. 8‫א‬
INC Destination ; Destination = Destination +1
DEC Destination ; Destination = Destination - 1 
 WORD1- ."‫&א‬9d^_15š@A9INC WORD1-0U‫'א‬uf
 .WORD2- ."‫&א‬9dV01Zy-‫א‬RA1Ž@A9DEC WORD2-0U‫ א‬
Zy?_ !"‫א‬Zy-‫_Œ?א‬79q7)9G‫א‬NEG(Negate)-0U‫א‬V+| q1C‫א‬N 4
mSz72"‫_^א‬9qnƒ !0Zy?_9`Z9 )‫א‬Zy-‫ א‬
:-0E#0‫א‬#. 8‫א‬2’SComplement
NEG Destination
 -‫אא‬5y04&'()"‫ א‬Q45070‫א‬Z9k Q

 :u0
NEG BX ; BX = -BX 
NEG BYTE ; BYTE = -BYTE.

 −:
‫א‬/‫)א‬$JG!P‫א‬G4‫א‬:!Q
#gM‫&א‬.V0& ‫א‬K79qT<e‫@אא‬A#A)‫א‬-0‫א‬U‫א‬5070‫א‬Z92
 .5 (‫א‬#.& _High Level Programming Languages ‫א‬
 .WORD€‫א‬V0V9N.0V+?F+BAV9N."‫א‬34f‫_ƒאא‬
 B=A?F‫א‬79q
?F‫א‬79`@<9C-ŒF0-‫אא‬- N.0_-‫אא‬N."&9d7A1V2‡z1U
 6"‫א‬Zy-‫_א‬7()"‫א‬# y7A1ZS7()0_N."‫א‬# y7A1_
 MOV AX , A   B ^‫א‬:A17FyAX7()"‫אא‬A&9d7A1‫א‬
MOV B , AX
 -0‫א‬U‫_^א‬#9`Z9A= 5 - A-0U‫א‬04
 MOV AX , 5 AX55
 SUB AX , A   5-A+G`AX
MOV A , AX A:

26 SUST
    :  
___________________________________________________________
 -0‫א‬U‫_^א‬4
NEG A
ADD A,5
 -0‫א‬U‫_^א‬#9`Z9A=B-2*A-0U‫א‬C‫א‬N 4
MOV AX,B
SUB AX,A
SUB AX, A
MOV A,AX
 −:/01H‫א‬RS‫א‬
U‫א‬56A"‫א‬ijk l#$ž5IA0^_-‫אא‬Z )A# + y‚)‫א‬78$‫א‬
+ij- 56A0CODE SEGMENT/01M‫א‬56A0*)9)$1/01M‫א‬+

GjkS56A0DATA SEGMENT&1 F‫א‬56A0*)9/01M‫א‬#0 %)"‫&א‬1 F‫א‬


 STACK SEGMENTX 2"‫א‬56A0*)9X 2"‫א‬+
# $  50ASSEMBLER‫א‬#6‫א‬5IA"‫א‬c # $  Z T<e‫אא‬
 ./01M‫א‬7 ‫ א‬56A07O9-#

 :MEMORY MODELSJ)‫א‬K‫א‬UVT
 Q‫א‬56A05)934V2‡k lN.D6"‫א‬/01M‫א‬329 y1‫*א‬0 f1-ƒ
Z9.c Q*+7278$056A0@‫ א‬%‫ `[_א‬yX 2"‫&א‬1 F‫א‬/01M‫א‬V072hAf
 :‫א‬-6)‫א‬#2nƒMODEL.#2‫אא‬
.MODEL MEMORY_MODEL

:q Z9,-‫Ÿƒ[א‬V0-u‫א‬9  !9#6A1G4O9-7Fy-6)‫אא‬#Z9


SMALL[ƒ‫ א@א‬%‫א‬CFˆZ9C‫א‬NF&1 F‫א‬Z(QV29’‫_ƒא‬C0+V2‫ א‬e‫א‬
?8‫*א‬+-6)‫א‬#Z9.{‹-6o‫א‬/0‫א‬M‫אˆ א‬J‫אא‬
 SMALL MODEL .:# ‫א‬

 :07sa8  #$%"‫א‬-‫'&אא‬9 0T†49‫ א‬e‫א‬





 OD‫א‬  MODEL79 "‫א‬


  Q‫א‬56A0&1 F‫ א‬Q‫א‬56A0 2‫א‬  SMALL
  Q‫א‬56A0&1 F‫א‬56A0V0-u4 2‫א‬  MEDIUM

27 SUST
    :  
___________________________________________________________
 56A0V0-u4&1 F‫ א‬Q‫א‬56A0 2‫א‬  COMPACT
v)0NˆV256A0V0-u4 &1 F‫א‬56A0V0-u4  2‫א‬  LARGE
 64k BYTEV0M‫א‬,$80O9-
34V2‡V256A0V0-u4&1 F‫א‬56A0V0-u4 2‫א‬  HUGE
 64k BYTEV0M‫א‬6,$80x329

 :DATA SEGMENT0 4‫
א‬I"
4&1 F‫א‬56A0:$9-V2‡Š‫א‬u#F)&‫א‬N."‫א‬7O9-*+&1 F‫א‬56A0ij
 .-‫אא‬3207.;z:1U#F)1- 320G4
-ŒF0Š‫א‬u‫א&א‬N."‫א‬O9-Z9nƒ DATA.O9-‫ א@א‬%‫א‬Z9&1 F‫א‬56A0O9-
 nƒ9‫א‬u"‫א‬
.DATA
WORD1 DW 2
WORD2 DW 5
MSG DB ‘THIS IS A MESSAGE’
MASK EQU 10011001B

 :Stack SegmentWR ‫
א‬I"
TS4&1 F‫‘א‬9 2# +0‫ א‬%‫א‬Z -‫אא‬V0T<!<(QX 2"‫א‬56A0V0L-.‫א‬
7V9<%)zQ8y4X 2"‫א‬7V9<%Z(J‫אא‬32934 b./ 01M‫ א‬$
 .(/01M‫א‬7+TS4:)9 26"‫א‬Z A‫א‬
 Stack Size.:O9-‫ א@א‬%X 2"‫א‬56A0O9-Z9
O9-@A9‫א‬u"‫א‬.bytes&‫ א‬QX 2"‫א‬Z(QC 9?  ‫אא‬C +7u‡sizek Q
 100hZ(lX 2"‫א‬
.Stack 100h
 .Assembler‫א‬#6‫א‬1KBZ(J‫א‬L‫א‬f‫א‬Z9Z(J‫א‬O9-Z9’‫_ƒא‬
 :Code Segment/01‫
א‬I"
q‫*א‬+$9-Z9/01M‫א‬7 ‫ א‬#0 %)"‫א &א‬-0‫א‬U‫*א‬+56A"‫אא‬ij
 :‫א‬
.Code Name

28 SUST
    :  
___________________________________________________________
9 3z)Small[ƒ‫א‬#Q56AZ‫א‬T6+\+‫ א‬z.56A"‫א‬Z‫א‬Namek Q
 .#J‫א‬cH6 #?T6+ŽAssembly‫א‬/01-@A k Q(hAf Q‫א‬56A0
h )4Procedure(&‫א‬T‫א‬-!_)- .D/0‫א‬-?D-0‫א‬U‫א‬5Z9/01M‫א‬56A07 ‫א‬
 ‫א‬q‫*א‬+&‫א‬T‫א‬-!\‫א‬c{O9-
Name Proc 
; T‫א‬-!\‫א‬7 ‫א & א‬-0‫א‬U‫א‬
Name ENDP
 Pseudo_Ops &‫א‬p9_:fEndpProc04،T‫א‬-!\‫א‬Z‫א‬Namek Q
 /0)$
I"89!:‫א‬XY;‫א‬
.CODE
MAIN PROC 
;T‫א‬-!\‫א‬7 ‫א‬ & ‫א‬-0‫א‬U‫א‬
MAIN ENDP
; :Z9&‫א‬T‫א‬-!\‫א‬# A

q‫*א‬+329.small[ƒ‫א‬#Q/01M@‫א‬72;‫א‬3f/01M‫א‬5IA0794?34 3]‫א‬
 :‫א‬
.MODEL SMALL
.STACK 100H
.DATA
; Š‫א‬u‫א&א‬N."‫א‬O9-329
.CODE
MAIN PROC
; T‫א‬-!\‫א‬7 ‫א‬ -0‫א‬U‫א &א‬
MAIN ENDP
; 2&‫א‬T‫א‬-!\‫א‬# A
END MAIN
 ./01M‫ )א‬a-‫א‬T‫א‬-!\‫א‬Z#+F0 END/01M‫א‬#9:1#ij/01M‫א‬-6- 

INPUT &OUTPUT INSTRUCTIONS U‫)א‬Z‫א‬.5Z‫ א‬

@‫ א‬%nƒ[‫א‬- \‫א\ א‬ 1‫א‬0@‫ א‬%# !?‫<א‬:!U‫א‬50‚ y ‫א"א‬709


c@‫ א‬%‫א‬Z9.[‫א‬- _T 0#2OUT -0‫א‬U‫_ א‬T 0*fT‫א‬-AIN -0‫א‬U‫א‬
z +!?‫א‬p:e‫א‬5070‫א‬#+-6"‫א‬3‫א&_ƒא‬3 QU‫א‬K-0‫א‬U‫א‬
p:!V0Ot y 1‫א"א‬V9+34U‫א‬mFF)# A F6‫א‬/0‫א‬M‫א‬-0‫א‬U‫א‬c@‫ א‬%‫א‬Z9
# !?‫<א‬:!U‫א‬5070‫א‬7:U‫א‬V01‫א‬1u‫א‬،-0 7/01M‫א‬79  69¡- ]

29 SUST
    :  
___________________________________________________________
NfZ9SERVICE ROUTINES#0 & ?#6‫<א‬:!E#8"‫&א‬-;‫א‬#6‫א‬
 .<:!E#8"‫&א‬-;‫א‬#6‫א‬
BIOS (BASIC U‫)*א‬9 1‫א"א‬5070‫א‬#0 %)"‫א‬#0 ‫? &א‬3+1 !9

:9<tZ9BIOS‫? &א‬.DOS‫ א@א‬%1u‫א‬INPUT /OUTPUT SYSTEM )


‫&א‬0   [‫א‬- \‫א\ א‬ 1‫א‬050-ŒF0709(ROM ‫ )א‬hAfT‫א‬-A‫א‬-‫ƒא‬
‫ א@א‬% +@A,-Q#)#+FIC'u0C‫ א‬A-u4 & + $@ADOS
 .-ŒF0[‫א‬- _/ _& + $BIOS
INT (INTERRUPT #IA0T‫ א‬1@‫ א‬% d# + $DOS‫א‬4BIOS‫א‬T‫ א‬1Z9
 ?8‫א‬c*+T‫)א א‬
INT INTERRUPT_NUMBER
BIOS‫א‬#0  6@A9INT 16hC'u0 dZy?#IA"‫א‬T‫ א‬1Zy? 9 `Z9k Q
Z DOS‫א‬V0#0 T‫ א‬R INT 21h $"‫א‬#Q# yT‫א‬-A#D *

£‫א‬3ƒŽCAQz&0 ‫א‬V0 9<0*+,-‫א‬

 (INT 21H)21H[LG
\" ‫א‬X‫א‬0
k QDOS7 .;‫@א‬Y1:0 A9o‫&א‬0 ‫א‬V0NF#+g $T‫ א@אא א‬%‫א‬Z9
i- 4&'()0Z A‫א‬K5-0U‫ א‬69 yAH7()"‫א‬#6"‫א‬#0 ‫א‬Zy?5Z9
FA‫א‬-0U‫ א‬69 y.21H#IA"‫ א‬IT‫ א‬1Z9nƒ #6"‫א‬#0 ‫€א‬1 )Qnƒ
 !#$%"‫&א‬0 ‫א‬5Z9.&'()"‫א‬:Z9k Q#IA"‫א‬T‫ א‬1 dZ y
 .:0&!-%"‫א‬: _&' "‫א‬#0 7#$ 9NF

 H-&‫א`א_^]א‬Na"@M,M89!:‫א‬.;‫א‬
 (m-‫)א‬OD‫  א‬#0 ‫א‬Zy?
  $"‫א‬#QV0 Q‫א‬# yT‫א‬-y  1
 #Œ;‫ א‬Q‫א‬,-Q#  2
 #Œ;‫א‬,-J‫א‬V0#+g#  9

 `‫א‬bKc7$.&D‫א‬XY;‫א‬2
 8  ‫!'א‬N<)'JX‫)א‬L:1[LG`‫א‬

30 SUST
    :  
___________________________________________________________
 AH7()"‫א‬1Zy-‫א‬5:, ‫א‬
 #Q +h.‫—א‬G‫א‬,-qASCII‫ א‬+GjAL7()"‫א‬ :d) ‫א‬
NON CHARACHTER KEY-QNˆv$0*+h.‫א‬#Q04 $"‫א‬  
 .(F1-F10 $"‫'א‬u0)
 −:]‫א‬#Z#0 ‫א‬c $
MOV AH, 01
INT 21H
v$0G4*+h.‫ א‬+. $"‫א‬#Q*+h.‫א‬mQ^_@ %)"‫?א‬Y1#0 ‫א‬c@A
h.‫—א‬G‫א‬,-J‫א‬L-+Z9AL7()"‫א‬V0v$ASCII ‫* א‬+8J‫א‬Z9
-YhAf:f@ %)"‫_א‬#??Ž#0 ‫א‬c@Az.#Œ;‫א‬+ $"‫א‬#Q +
Gj,)fF1-F107u0#D‫ א‬$"‫א‬Kh.—‫_ƒא‬.v$0*+h.‫א‬Z9*Q
%AL7()"‫א‬sqf5 6)INT 21ho‫א &א‬.-$D# A‫א‬+AL7()"‫א‬

 . "‫א‬7$‫א‬
 .[RQ e.K &.fgS‫?א‬6<)'h)6:2[LG`‫א‬−2
 .AH7()"‫א‬02Zy-‫א‬5: , ‫א‬
 .DL7()"‫א‬-+6"‫א‬,-q ASCII‫א‬-$Œ5
 .AL7()"‫א‬Z9-+—G‫א‬,-qASCII‫ א‬2‫א‬: d) ‫א‬
 #Œ;‫א‬+@:$‫א‬#0'+L-# ‫א‬-0‫א‬U‫א‬:u0
MOV AH , 02H
MOV DL , ‘?’
INT 21H

#9:1J‫א‬5‫א‬3‫א)_ƒא‬5"‫_א‬-Œ˜"‫א‬x-q9#Œ;‫*א‬+,-J‫א‬#+FI 
 .( 9 e‫א‬-6)‫א‬#9‫_ א‬-Œ˜"‫א‬x-q9-6)‫א‬
9‫ א‬e‫א‬C94Control CharacterZ2q‫א‬,-Q#+F6#0 ‫א‬c@‫ א‬%‫א‬Z9
 (Z2q‫א‬,-QK
 #$ ‫א‬  <0-‫א‬  ASCII 2‫א‬
 &D?‫ א‬D_  BEL (Beep)  7
 (Back Space )O%#f)0  BS (Back space)  8
 Tab?‫ א‬A‰x-`  HT (Tab)  9
  9 !-6  LF (Line Feed)  A

31 SUST
    :  
___________________________________________________________
 J‫א‬-6)‫א‬#9‫   א‬CR (Carriage return)  D

 Z2q‫א‬,-JASCII-$Œ+AL7()"‫א‬78j $‫ א‬


 :.*‫א‬/01‫א‬
‫א‬-6)‫א‬#9‫—_  א‬G‫א‬,-J‫א‬#+FIZS $"‫א‬#QV0,-QT‫א‬-A@A U‫א‬g1-
 ./01M‫א‬T:1_ZS
 :# ‫א‬T‫!<א‬U‫א‬V0/01M‫א‬329
 #Œ;‫*א‬+"‫@"؟‬:$z‫א‬#0'+?:_  −1
MOV AH,2
MOV DL,’?’
INT 21h
  $"‫א‬#QV0,-QT‫א‬-y −2
MOV AH,1
INT 21h
DL7()"‫ @א‬%)1UnƒC'u0BL- 7()0 _—G‫א‬,-J‫א‬P$Q −3
2#0 ‫א‬34PQz)AL7()"‫&א‬9dN .nƒG ˜  9 e‫א‬-6)‫א‬#9‫_ א‬-Œ˜"‫א‬n9-`
b¡AL7()"‫€א‬F6"‫א‬,-J‫ א‬+Ž@ADL7()"‫א‬+FI6"‫א‬,-J‫א‬FA@A
 BL7u0- 7()09dV9<t b( f#()"‫א‬# A‫ א‬A$1
MOV BL , AL
 Z2q‫א‬,-Q#+FI b 9 e‫א‬-6)‫א‬#9‫_ א‬7()"‫א‬n9-q −4
 ]nƒZ9Line FeedCarriage Return
MOV AH,2
MOV DL,0dh ; Carriage Return
INT 21h
MOV DL,0ah ; Line Feed
INT 21h
 (3)6‫א‬BL7()"‫א‬9<t—1‫א‬PQz) _—G‫א‬,-J‫א‬#+FI −5
MOV DL , BL
INT 21h
 AH7()"‫א‬4ChZy-‫א‬5nƒZ97 .;‫@א‬Y1^‫א א‬/01M‫א‬T:1_ −6
 .21hZy?#IA"‫א‬T‫ א‬1T+ ‫א‬ 
MOV AH,4CH
INT 21h


 :# ‫?א‬8‫*א‬+/01M‫א‬F89nƒ*+
TITLE FIRST: ECHO PROGRAM
.MODEL SMALL

32 SUST
    :  
___________________________________________________________
.STACK 100H
.CODE
MAIN PROC 
; (‫א‬#0'+?:‫א‬

MOV AH,2 ; ,-Q#+FI

MOV DL,’?’ ; +FI6"‫א‬,-J‫א‬


INT 21H
; $"‫א‬#QV0,-QT‫א‬-y

MOV AH,01 ; ,-QT‫א‬-y


INT 21H
MOV BL,AL ; ,-J‫א‬V9<t

; 9 !-6^_‫א‬
MOV AH,02
MOV DL,0DH ; carriage return
INT 21H
MOV DL,0AH ; line feed
INT 21H
;  _—G‫א‬,-J‫א‬#+FI
MOV DL,BL ; ; 7()"‫א‬V0,-J‫?א‬Q_
INT 21H
; DOS 7 .;‫@א‬Y1^_ ‫א‬
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
 4Ch#$ ‫א‬INT 21h $DOSZ2q‫א‬j1Žf/01M‫א‬Oy90 +14PQz
 /01M‫&אא‬1 F‫€א‬6y,Q Af&‫א‬N."‫ א@א‬%‫א‬Z9’1U


 −:/01‫ א‬S.XS0
 −:# ‫א&א‬6‫א‬nƒV9k Q7 .;/01M‫ <א‬:=T;1_#A9-IT<e‫אא‬
 (? 8"‫א‬/01-O0).‚)‫א‬u"‫א"א‬/01M‫א‬#2Text Editor/01-G4@‫ א‬%‫ א‬−1
 .OBJECT FILE*)"‫א‬O"‫ א‬ASSEMBLER‫ א@א‬%‫ א‬−2
7 .;‫א‬O0 OBJECT‫&א‬$0h-LINKERh-‫א‬/01-@‫ א‬%‫ א‬−3
 .EXECUTABLE FILE
 ./01M‫א‬7 .; −4

33 SUST
    :  
___________________________________________________________
 −:#A)‫א&א‬6‫א‬V06 77 8$ 9 f

 −:SOURCE FILE/‫א‬1‫א‬jXS0−1
81O0/9?-dG4@‫ א‬%‫א‬V2‡/01M‫א‬#2Editor R81?-dG4@‫ א‬%‫א‬Z9
u"‫'א‬u0ASM (Extention) ‫ א‬0O"‫א‬V9<t +Z9EDIT7u0Text Editori +
 .FIRST.ASMZzO"‫א‬P$¤‚)‫א‬

 −:ASSEMBLE THE PROGRAM/01‫
א‬k−2
MASM(Microsoft 7u0Assembler‫ א‬Q4#6‫א‬/01M‫א‬#e0‚9-IV+‫א‬Z9
G‫א‬DU‫א‬O"‫א‬79q@Ao‫א‬TASM(Turbo Assembler)4Macro Assembler)
.(OBJECT FILE)* )9#]‫א‬#.^_-y‫א‬O0^_5 (‫א‬#.#2"‫א‬/01M‫*א‬+ij
Z9k Q/01M‫א‬#H6 G4 !@ +V0 H‫א‬O"‫א‬5070‫א‬Z9# ‫א‬cTS4
T6 4 !@ #?*+78¤*Q:q q8T6 U‫ א‬9 `(1) 6‫!€_א‬-‫א‬
 ./01M‫א‬
 :‫א‬q‫*א‬+Z9MASM4TASM/01M‫ א@א‬%‫א‬
TASM FILENAME; 
MASM FILENAME; 4 

 −:# ‫א‬c9‫א‬T<e‫א‬TASM/01-@ %)T<e‫אא‬


>TASM FIRST;
TURBO ASSEMBLER VERSION 3.1 COPYRGHT(C)1988,1992BRLAND
INTERNATIONAL
ASSEMBLING FILE: FIRST.SAM
ERROR MESSAGE: NONE
WARNING MESSAGE:NONE
PASSES: 1
T6 UV9-6 9O"‫א‬Z‫א‬91u‫א‬-6)‫א‬ASSEMBLER‫€א‬19U‫א‬-6)‫א‬
 ./01M‫! א‬o‫א‬
F1-6)‫א‬Zy?G`#??:_Z9DU‫א‬/01M‫א‬H6 G4x3‫_ƒא‬14PQz
i- 4-0 ‫א‬ZSH6‫ א‬q8first.asm DU‫א‬O"‫א‬f bk QH6‫א‬V+#9-
 .first.objO"‫*א‬+78¤*Q6‫א‬c +_

 Linking the program/01‫א‬a$G−3

34 SUST
    :  
___________________________________________________________
Nˆ2Machine Language#]‫א‬#.O0#A)‫א‬6‫א‬c>;1_—G‫א‬O"‫א‬

 :# ‫א‬FEnƒ $#A‫א‬/0‫א‬M "‫א‬72;‫*א‬+Gjz1U $7y


z/01M‫א‬7 ‫ א‬#1‫ א‬+3Žf-‫אא‬O"‫א‬7 `320O9-@ +−4
 . $V2‡
V0-u4h?#Q&‫א‬#f-0Nˆ32/01M‫א‬7 ‫ א‬V9‫א‬T†U‫א‬K−
 .- O020i- 4 +-f/0‫א‬-T‫ א‬1/0‫א‬M‫ א‬Q4V0Z9k Q/01-

 9 `#$%"‫א‬Object Files‫א‬mh-‫א‬# +T‫א‬-!Ž@A9Link Programh-‫א‬/01-
*+(Executable File). EXE $7yO0[1Žnƒ @A9/01M‫א‬7 ‫ א‬V9‫א‬
 :‫א‬q‫א‬
> TLINK First;
Turbo Link Version 2.0 Copyright (c) 1987 Borland International.

 Run The Program /01‫א‬K &–4
 DOS‫א‬kdV0†‫א‬#hAfZ9/01M‫א‬7 .;
C:\ASM > first
?t
t
C:\ASM >
@A9. $"‫א‬#QV0v$0+h.‫א‬mQ_?Y1z‫ "؟"א‬,-J‫א‬#+F6/01M‫@א‬A9
 ‫א‬T:1z‫א‬ZS +h.‫—א‬G‫א‬,-J‫א‬#+FI 9 e‫א‬-6)‫א‬#9‫_ א‬/01M‫א‬
 .7 .;‫@א‬Y1_

Display StringgS‫א‬6DGG]e

FAz@ %)21hZy?#IA"‫א‬T‫ א‬1V01 Zy?#$ ‫ א@א‬%‫א)‚—א‬/01M‫א‬


 .#Œ;‫א‬+,-Q#+F62Zy?#$ ‫א‬n $"‫א‬#QV0,-Q
 9Zy?#0 ‫ א@א‬%‫א‬Z9#Œ;‫א‬+#0#??:\u"‫אא‬
 gS‫א‬6DGG]e: 9[LG
 DX7()"‫א‬Z9#-‫א‬#9‫ א‬FOffset#Q‫א‬p\‫א‬3‫א‬+: , ‫א‬
 ("$",-J#-‫א‬:34 b)  

35 SUST
    :  
___________________________________________________________
,-QG4+#-‫&א‬Q‫_ƒאא‬.#Œ;‫א‬++FIZz#-‫א‬#9:1"$",-J‫א‬
 .#+F6‫א‬TS4c $Z91ŽfControl CharacterZ2`
cO9-Z9.#Œ;‫‘א‬Hello!’#-‫?א‬:Ž@A9/01-#2@A# ‫א‬c 
 # ‫א‬#y-6&1 F‫א‬56A0#-‫א‬
msg db ‘HELLO!$’
 LEA)*‫א‬
DX7()"‫א‬#-‫א‬#Q‫א‬p_3‫א‬+< :=_INT 21h#IA"‫א‬T‫ א‬19Zy?#0 ‫`[א‬
 LEA ( Load Effective Address)-0U‫ א‬$Z9nƒ7
LEA Destination , Source
@A9.(-‫אא‬5y0)-J‫א‬N."‫א‬Z‫ ?א‬8"‫א‬#0‫ א")('&א‬Q4€ )"‫א‬k Q
 -0U‫א‬C'uf.€ )"‫א‬7()"‫ ?א‬8"‫א‬N.#Q‫א‬p\‫א‬3‫א‬+5-0U‫א‬
LEA DX, MSG
 .DX7()"‫א‬msgN."‫א‬3‫א‬#Q‫א‬p\‫א‬# y5@A9
_N;92DS7()"‫ <א‬:=_[¤1Žf&1 56A0+Gj/01M‫אא‬3U
 .&1 F‫א‬56A0

 PSP (Program Segment Prefix)/01‫
א‬I"C5$
/01M#1 256s 8%7 .;‫@א‬Y1@A9-‫אא‬/01M‫א‬7 `Z90 +
70‫א‬/01M‫א‬5 6)9nƒ+/01M‫א‬V+&00+PSP‫א‬Gj.PSP)
m()"‫א‬V07R‫א‬56A"‫א‬3‫א‬+5DOS7 .;‫@א‬Y1@A9.&0"‫א‬c50
3‫א‬++GjzDS&1 F‫א‬56A07()03Žfn#( 1/01M‫ א‬$7FyESDS
&1 56A0+Gj/01-G43Žf#2;"‫א‬c['/01MR‫&א‬1 F‫א‬56A0
+/01MR‫&א‬1 F‫א‬56A0_N; &1 F‫א‬56A07()0< :(4 F934 b
 ‫א‬q‫א‬
MOV AX, @DATA
MOV DS, AX
‫@א‬A9k QDATA.,-"‫א‬/01MR‫&א‬1 F‫א‬56A03‫א‬+@DATA k Q
V9<t5 6)1z1U56A"‫א‬3‫א‬+7u‡Zy?_@DATA Zz‫א‬79qASSEMBLER
 f# A‫א‬5Z9h 7()AX@+7()‰‫ א‬Af-ŒF0DS7()"‫א‬#( ‫א‬
 .DS7()"‫_א‬:A1Z9nƒ Cz4

36 SUST
    :  
___________________________________________________________
@‫ א‬%‫א‬DX7()"‫א‬:1‫א‬+5‚9-IV+nƒ‘HELLO!’#-‫א‬#+FIV2‡nƒ 
 7 8$# ‫א‬c9‫א‬/01M‫א‬.21hZy?#IA"‫א‬T‫ א‬19Zy?#0 ‫א‬

TITLE SECOND: DISPLAY STRING


.MODEL SMALL
.STACK 100H
.DATA
MSG DB 'HELLO!$'
.CODE
MAIN PROC
; initialize DS
MOV AX,@DATA
MOV DS,AX
;display message
LEA DX,MSG ; #-‫א‬+78Q‫א‬
MOV AH,09H ; #))‫א‬L-+#$ 
INT 21H
;return to DOS
MOV AH,4CH
INT 21H ; 7 .;‫@א‬Y1‫[א‬-‫א‬
MAIN ENDP
END MAIN
:A Case Conversion Program<.)#‫'א‬:!Q/0)$
/01M‫@א‬A9lower-case letterN.D,-Q Ž@A @ %)"‫@)˜אא‬Au"‫אא‬
upper-case NF,-Q?D^_9`  _—G‫א‬,-J‫א‬5F6#??:Ž
 'C u0letter
Enter A Lower Case Letter: a
In Upper Case It Is: A
 CR,LF V07O9-EQUp9\‫ א@א‬%‫א‬/01M‫אא‬Z 
CR EQU 0DH
LF EQU 0AH
 ‫א‬q‫*א‬+7a-‫א‬O9-Z9 
MSG1 DB ‘Enter A Lower Case Letter:$’
MSG2 DB CR,LF,’ In Upper Case It Is: ‘
Char DB ? ,’$’
#-‫?א‬:Ž@A /01M‫א‬3U nƒ-ŒF0MSG2#-‫ א‬$9-—charN."‫א‬O9- +
Z9Upper -case^_9`  _—G‫א‬,-J‫)א‬char,-J-ŒF0#+F0msg2
 ( _—G‫א‬,-J‫א‬V020hZy-‫א‬v-I#A9-6nƒ
 . 9 e‫א‬-6)‫א‬#9‫ א‬V04 F#-‫א‬7!, :msg2#-‫א‬7FyCR,LFZ2q‫א‬,-QO9-—

37 SUST
    :  
___________________________________________________________
,-J‫א‬#+FI#+F6‫א?א‬-z‫א‬Z 1Žf‘$’#-‫א‬#9:1#0':zmsg2#-‫א‬3U
 .(-ŒF0charN."‫א‬#9:1 !‘$’#0'‫א‬34PQz)#Œ;‫א‬char
  $"‫א‬#QV0,-J‫א‬T‫א‬-yZSmsg1#-‫?א‬:Ž/01M‫א‬4 F9
LEA DX ,msg1
MOV AH ,9
INT 21h
MOV AH ,1
INT 21h
3Unƒ),-J‫א‬V0 20h  ‫א‬v-6nƒupper-caseNF,-Q^_,-J‫א‬79`Z9nƒ 
V0¥T‫א א‬NF2‫א‬,-J‫א‬4 Fk Q20h ‫א‬ASCII !N.8‫א‬NF2‫א‬,-J‫א‬m‹-$‫א‬
 charN."‫א‬#( ‫א‬V9<tZ9(61h V0¥T‫א א‬N.8‫א‬,-J‫א‬4 F 41h
SUB AL,20h ; NF,-Q‫א‬Q

MOV char ,AL ; N."‫¦א‬1§< ZS

 f.C A1-ƒcharN."#+F05F6msg2# 1u‫א‬#-‫?א‬:Ž/01M‫@א‬A9nƒ 


 :/01M‫א‬s19
TITLE THIRD: CASE CONVERSION PROGRAM
.MODEL SMALL
.STACK 100H
.DATA
CR EQU 0DH
LF EQU 0AH
MSG1 DB 'ENTER A LOWER CASE LETTER: $'
MSG2 DB CR,LF,'IN UPPER CASE IT IS:'
CHAR DB ?,'$'
.CODE
MAIN PROC
; initialize DS
MOV AX,@DATA
MOV DS,AX
;print user prompt
LEA DX,MSG1
MOV AH,09H
INT 21H
;input character and convert to lower case
MOV AH,01H
INT 21H
SUB AL,20H
MOV CHAR,AL
;display on the next line
LEA DX,MSG2
MOV AH,09H
INT 21H
;return to DOS
MOV AH,4CH
INT 21H
MAIN ENDP

38 SUST
    :  
___________________________________________________________
END MAIN
 −:N:Gl
 ‫؟‬...‫"ƒא‬IBM PC#D‫א‬5 (‫א‬#.H6 :94Cq qD# ‫א‬T†U‫א‬V0G4-ƒ‫א‬−1
1- two_words
2- ?1
3- tow words
4- t=
‫ א‬4G-;+aSZy-‫€א‬1-ƒ‫א‬#q qDŠ1‫_ƒא‬.H6 :94 qD# ‫@א‬y?U‫א‬V0G4−2
.G-;+
1- 246 2- 246h 3- 1001 4- 1.101
5- 2EAH 6- FFEH 7-1011B
 (C 2¡3‫)_ƒא‬# ‫א&א‬N."‫א‬V0¨7O9-©h+4−3
 .52# a‫א א‬# yA†‫א‬word#N.0−4
 .# a‫א א‬# y !zword1†‫א‬word#N.0−
 .52# a‫א א‬# yB†‫א‬Byte,-QN.0−!
 .# a‫א א‬# y !zC†‫א‬Byte,-QN.0− 
 .65536# a‫א א‬# yword2†‫א‬word#N.0−
 # a‫א א‬# y: f5Array1:†‫&א‬#f$80−
 .7G)9Bell†‫Šא‬S−p
‘This Is A Message $’G)9msg†‫א‬#?ŠS−Q

 0000h#Q‫א‬p\‫א‬V0¥T‫א א‬-‫אא‬#1<ž# ‫&א‬1 F‫א‬34Lf‫א‬−4


A DB 7
B DW 1ABCH
C DB ‘HELLO’
 .A,B,C&‫א‬N.#Q‫א‬p\‫א‬3‫א‬+©h+4−4
 .0002h#Q‫א‬p\‫ א‬+Š9F‫&א‬9d−
 .0004h#Q‫א‬p\‫ א‬+Š9F‫&א‬9d−!
 .‘HELLO’#‘O’,-q#Q‫א‬p\‫א‬3‫א‬+−
Byte# f-Q&‫א‬N.0V+?F+B1,B2k QH6 4#q qD# ‫?א&א‬F‫Šא‬1‫_ƒא‬−5
 .words&&‫א‬N.0?F+w1,w2
1-MOV Ds,Ax 2-MOV Ds,1000h
3- MOV CS,ES 4-MOV w1,DS
5-XCHG w1,w2 6-SUB 5,B1
7-ADD B1,B2 8-ADD AL,256
9-MOV w1,B1

39 SUST
    :  
___________________________________________________________
# y‫?א‬#.#2"‫א‬# ‫?א&א‬F‫א‬#ªMOV, ADD , SUB ,INC , DEC , NEG-0‫א‬U‫ @א‬%‫א‬−6
 :5 (‫א‬#.&‫?א‬F+^_
1- A=B - A
2- A= -(A+1)
3- C= A + B
4- B= 3* B + 7
5- A= B - A- 1
 :]@A(70/01-‘ )&‫?א‬F+ ‫א‬−7
 .-6)‫‘א‬$1#Œ;‫אא‬5"‫א‬+FIZS,-QT‫א‬-y−1
#Œ;‫א‬-6)‫‘א‬$‫א‬5"‫א‬+FIZSUpper case letterNF,-QT‫א‬-y−2

 .Lower case letterN.D,-Q?Dnƒ


 :$R/‫)א‬$
 :]@A9/01- ‫א‬−8
 .‘?’#0'‫א‬#+FI−1   
 10 ‫א‬V07y4:+gm9-;+my?T‫א‬-A@A9−2
 .‫א‬-6)‫א‬#( ‫א‬#+FIV9 ‫€א‬g)l/01M‫@א‬A9−3
  $u0
? 35
The sum of 3 and 5 is 8
,-Q7:+FI#S'u‫א‬,-J‫א‬T‫א‬-A/01M‫@א‬A9.,-Q#S'S# 6@A9/01- ‫א‬−9
  $u0.78$0-6
Enter Three Letters: ABC
A
B
C
Zy-‫א‬#+F6/01M‫@א‬A9(A-F )-;+‫@א) א‬Y‫א‬,-J‫ א‬Q4T‫א‬-A@A9/01- ‫א‬−10
  $u0.‫א‬-6)‫א‬G-;‫@א‬Y‫א‬-"‫א‬
Enter A Hexadecimal Digit: C
In Decimal It Is: 12

40 SUST

You might also like