SlideShare a Scribd company logo
1 of 60
Ñèñòåì ïðîãðàìì÷ëàë áà àññåìáëåð õýë Ëåêö -24 öàã Ëàáîðàòîðè – 32 öàã Íèéò êðåäèò – 2,5 7 õîíîãò ëåêö – 4 öàã (6 äîëîî õîíîã îðíî) Ëàá – 2 öàã (16 äîëîî õîíîã îðíî) ßâöûí øàëãàëò: 7 äàõ äîëîî õîíîã, 14 äýõ äîëîî õîíîã
Àøèãëàõ íîì ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ëåêö 1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ìàøèíû àðèôìåòèê ¿íäýñ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Õî¸ðòûí àðèôìåòèê Íýìõèéí õ¿ðä  ¯ðæèõèéí õ¿ðä   ,[object Object],[object Object],[object Object],1 0 1 0 0 0 1 0 x 10 1 1 1 0 0 1 0 +
Íàéìòûí àðèôìåòèê 16 15 14 13 12 11 10 7 7 15 14 13 12 11 10 7 6 6 14 13 12 11 10 7 6 5 5 13 12 11 10 7 6 5 4 4 12 11 10 7 6 5 4 3 3 11 10 7 6 5 4 3 2 2 10 7 6 5 4 3 2 1 1 7 6 5 4 3 2 1 0 0 7 6 5 4 3 2 1 0 +
2-ò, 10-ò, 16-òûí õàìààðàë F 15 1111 10 16 10000 E 14 1110 D 13 1101 C 12 1100 B 11 1011 A 10 1010 9 9 1001 8 8 1000 7 7 111 6 6 110 5 5 101 4 4 100 3 3 11 2 2 10 1 1 1 0 0 0 16-ò 10-ò 2-ò
Ñàíàõ îé ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ìýäýýëëèéã ä¿ðñëýõ 1.Õî¸ðòûí ìýäýýëýë:  Òîîí ìýäýýëýë:  áàéò  Òýìäýãã¿é òîî   ¿ã  Òýìäýãòýé òîî 2 ¿ã   Ѻðºã òîîã 2-òûí ã¿éöýýëòýýð ä¿ðñëýíý   gon(x)=2 k -mod(x) gon(-1)=2 8 -1=256-1=255=FFh gon(-2)=gon(-1)-1=255-1=254=FEh gon(-128)=2 8 -128=256-128=128=80h Òîîí áóñ ìýäýýëýë öýã, ä¿ðñ äóó àâèà áîëîí áóñàä 2. Òýìäýãò ìýäýýëýë: 1 òýìäýãò 1 áàéò ýçýëíý. (ASCII êîä) 1 òýìäýãò 2 áàéò ýçýëíý. (UNICOD) Äàðààëñàí òýìäýãò äàðààëñàí áàéò (¿ã) –ä áàéðëàíà. 3. Êîìàíä ïðîöåñîð áèåë¿¿ëýõ, òóãàé õýëáýðòýé áè÷èãäñýí ìýäýýëýë þì. ¯éëäëèéí êîä, ¿éëäýëä îðîõ îïåðàíäûí õàÿã çýðãýýñ òîãòîíî.1-6 áàéò ýçýëíý. òîî  òýìäýãò  êîìàíä  Æèøýý ðåãèñòðèéí õóâüä 10101010 11000011 00001111 11110000 00000000 11111111 00010011 10011010 R E T U P M O C EA 0001 0002 A5 0000 1000 0004 A000 r2 r1 11 w kod Kod -  ¿éëäëèéí êîä,  w – 0 áîë áàéò ðåãèñòð 1 áîë ¿ã ðåãèñòð r – ðåãèñòðèéã çààõ 3 áèò óòãà, Æèøýý íü r – 000 áîë AX  r – 001 áîë CX r – 100 áîë SP  r – 101 áîë BP MOV AX,BX – 1000 1011 1100 0011 – 8B C3
Ðåãèñòð¿¿ä ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],AL AH CF PF AF ZF SF TF IF DF OF
Ëåêö 2 ,[object Object],[object Object],[object Object],[object Object]
Àññåìáëåð ïðîãðàì, ò¿¿íèéã õºðâ¿¿ëýõ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Àññåìáëåð ïðîãðàì áè÷èõ áýëýí çàãâàð áàñ áàéäàã. Ýíý íü äàðààõ á¿òýöòýé áàéíà. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ǻâ áè÷èãäñýí ïðîãðàìûã õºðâ¿¿ëæ, øàëãàí ç¿ãøð¿¿ëæ àæëûí áýëýí ïðîãðàì ¿¿ñãýäýã. Ïðîãðàìûã ÿàæ õºðâ¿¿ëýõèéã äàðààõ ñõåìýýð õàðóóëúÿ. Ïðîãðàìûí àíõíû òåêñòèéã îðóóëàõ  PROG1.ASM   | Îáúåêò ìîäóëü ¿¿ñãýõ  TASM.EXE  PROG1.OBJ  | Ïðîãðàìóóäûã õîëáîæ åõå ôàéë ¿¿ñãýõ  TLINK.EXE  PROG1.EXE | Ïðîãðàìûã øàëãàí ç¿ãøð¿¿ëýõ  DEBUG.EXE Æèøýý: Ïðîãðàìûí àíõíû òåêñòèéã äóðûí òåêñò çàñâàðëàõ ïðîãðàìààð áýëòãýæ áîëîõ áà íýðèéí ºðãºòãºëèéã çààâàë .ASM ãýæ õàäãàëíà. C>TASM  PROG1.ASM;  PROG1.OBJ ôàéë ¿¿ñíý. Àëäàà áàéâàë àëäààíû ìýäýý ãàðíà.  C>TLINK  PROG1.OBJ;  PROG1.EXE ôàéë ¿¿ñíý. C>DEBUG  PROG1.EXE
ªãºãäëèéí ýíãèéí òºðºë ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ñàíàõ îéã õàÿãëàõ àðãóóä ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ëåêö 3 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Øèëæ¿¿ëýõ êîìàíäóóä ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Àðèôìåòèê ¿éëäëèéí êîìàíäóóä 1. Íýìýõ ¿éëäëèéí êîìàíä - ADD Åðºíõèé õýëáýð: ADD  op1,op2  ôîðìàò íü:  [r/r  r/m  r/c  m/r  m/c] Õî¸ð òîîã íýìæ, ¿ð ä¿íã 1-ð îïåðàíäàä áàéðëóóëíà.  Op1=<op1>+<op2> Æèøýý: ADD  AH,BH  ADD  AX,9  ADD  x,DX  ADD  x,7 2. Õàñàõ ¿éëäëèéí êîìàíä Åðºíõèé õýëáýð: SUB  op1,op2  ôîðìàò íü:  [r/r  r/m  r/c  m/r  m/c]  op1=<op1>-<op2> Æèøýý: SUB  AX,BX  SUB  CX,a  SUB  DX,3  SUB  a,DH 3. Ðåãèñòðèéí óòãûã íýãýýð íýìýãä¿¿ëýõ – INC, õîðîãäóóëàõ – DEC, îïåðàíäûí òýìäýãèéã ººð÷ëºõ – NEG  êîìàíä áàéäàã. Åðºíõèé õýëáýð:  INC  op  ôîðìàò:  [r]  op=<op>+1  Æèøýý:  INC  BX DEC  op  [r]  op=<op>-1  DEC  AX NEG  op  [r,m]  op=-<op>  NEG  BL 4. Carry ôëàãèéã òîîöîæ íýìýõ – ADC, carry ôëàãèéã òîîöîæ õàñàõ – SBC êîìàíä áàéäàã. Åðºíõèé õýëáýð: ADC  op1,op2  ôîðìàò: ADD-í àäèë  op1=<op1>+<op2>+CF SBC  op1,op2  SUB-í àäèë  op1=<op1>-<op2>-CF Æèøýý: 13A0F120h + 4000200Ah íèéëáýðèéã îëîõäîî ýõëýýä áàãà ¿ãèéã ADD êîìàíäààð, äàðàà íü àõìàä ¿ãèéã ADC êîìàíäààð íýìíý. Ýíý ìàÿãààð ADC êîìàíäûã àøèãëàí õýäýí ÷ áàéò óòãûã íýìæ áîëíî. ßã ¿¿íèé àäèë carry-òàé õàñàõ ¿éëäëèéã ã¿éöýòãýíý.
5.  ¯ðæèõ ¿éëäýë: òýìäýãã¿é á¿õýë òîîã ¿ðæèõ-MUL, òýìäýãòýé á¿õýë òîîã ¿ðæèõ-IMUL êîìàíä Åðºíõèé õýëáýð: MUL  op  ôîðìàò:  [r, m, c]  2 áàéòûã ¿ðæèõýä  AX=AL x <op>   IMUL op  2 ¿ãèéã ¿ðæèõýä  DX:AX=AX x <op> Æèøýý: n  DB  10   . . .   MOV  AL,2   MUL  n  ;AX=2 x 10=0014h  AH=00h  AL=14h   MOV  AL,28   MUL  n  ;AX=28 x 10=0104h  AH=01h  AL=04h   MOV  AX,8   MOV  BX,-1   IMUL  BX  ;DX:AX=-1 x 8=0FFFFFFF8h  AX=0FFF8h  DX=0FFFFh 6. Õóâààõ ¿éëäýë: òýìäýãã¿é á¿õýë õóâààëò-DIV, òýìäýãòýé á¿õýë õóâààëò-IDIV êîìàíä Åðºíõèé õýëáýð: DIV  op  ôîðìàò: [r, m, c] ¯ãèéã áàéòàä õóâààõàä: AH,AL=AX:<op>   IDIV  op  AH-ä ¿ëäýãäýë,AL-íîîãäâîð    2 ¿ãèéã ¿ãýä õóâààõàä:  DX,AX=(DX:AX):<op>   DX-¿ëäýãäýë,AX-íîîãäâîð Æèøýý: n  DB  5   . . .   MOV  AX,17   DIV  n  ;AX:n=17:5=>íîîãäâîð AL=3,¿ëäýãäýë AH=2   MOV  DX,0   MOV  AX,17   MOV  BX,5   DIV  BX  ; (DX:AX):BX=17:5 => íîîãäâîðAX=0002h, ¿ëäýãäýë DX=0003h
7.  Òîîíû õýìæýýã ººð÷ëºõ êîìàíä Àðèôìåòèê ¿éëäýëä îðæ áàéãàà 2 îïåðàíä(¿ðæèõ, õóâààõ îðîõã¿é) çààâàë íýã òºðëèéí áàéõ ¸ñòîé. Æèøýýëáýë ¿ã äýýð áàéò òîîã íýìæ áîëîõã¿é. Èéìä áàéòûã ¿ã áîëãîæ õóâèðãàõ õýðýãòýé.  Áàéòûã ¿ã áîëãîæ õóâèðãàõ – CBW, ¿ãèéã 2 ¿ã áîëãîæ õóâèðãàõ – CWD êîìàíäóóä áàéäàã. Åðºíõèé õýëáýð:  CBW  îïåðàíäã¿é êîìàíä, õóâèðãàõ áàéò AL-ä, ¿ð ä¿í AX-ä   CWD  õóâèðãàõ ¿ã AX-ä, ¿ð ä¿í (DX:AX)-ä áàéðëàíà. Æèøýý: MOV  AL,32  ; 20h->AL   CBW  ; 0020h->AX   MOV  AL,-3  ; 0E0h->AL   CBW  ; 0FFE0h->AX   MOV  AX,32  ; 0020h->AX   CWD  ; 0000h->DX, 0020h->AX   MOV  AX,-3  ; 0FFE0h->AX   CWD  ; 0FFFFh->DX, 0FFE0h->AX
Óäèðäëàãûí êîìàíä Óäèðäëàãûí êîìàíäûã 2 àíãèëíà:  1. ͺõöºëò áóñ äàìæóóëàëò – JMP Åðºíõèé õýëáýð: JMP  <ì¸òêà>  ì¸òêà-êîìàíäûã íýðëýñýí íýð  JMP êîìàíä óäèðäëàãûã ì¸òêà-ààð òýìäýãëýãäñýí êîìàíäàä øóóä äàìæóóëíà. Æèøýý: JMP  M . . .   M:  MOV  AL,0 Óäèðäëàãûí êîìàíäûã óäèðäëàãà äàìæóóëæ áàéãàà çàéíààñ íü õàìààðóóëàí õîë, îéð äàìæóóëàëò ãýæ 2 àíãèëäàã. Îéð (near) äàìæóóëàëò çºâõºí IP ðåãèñòðèéí óòãûã ººð÷èëäºã áîë õîë (far) äàìæóóëàëò CS,IP ðåãèñòð¿¿äèéí óòãûã ººð÷èëíº. 2. ͺõöºëò äàìæóóëàëò ßìàð íýãýí íºõöºëººñ õàìààðóóëàí óäèðäëàãûã äàìæóóëíà. 2 ¿å øàòòàé:  1. õýìæèãäýõ¿¿í¿¿äèéã æèøèæ ¿ð ä¿íãýýñ íü õàìààðóóëàí ôëàãóóäûã ººð÷ëºíº. CMP  op1,op2 2. ôëàãûí óòãààñ õàìààðóóëàí óäèðäëàãûã äàìæóóëíà. Jxx  <ì¸òêà> _____________________________________________________________________________________________   Óäèðäëàãûí  óäèðäëàãûí  ¿éë÷ëýõ  ôëàãèéí   êîìàíä  íºõöºë  õ¿ðýý  óòãà _____________________________________________________________________________________________   JE  op1=op2  ÿìàð÷ òîîíû  ZF=1   JNE  op1<>op2  õóâüä  ZF=0 _____________________________________________________________________________________________   JL/JNGE  op1<op2  SF<>OF    JLE/JNG  op1<=op2  òýìäýãòýé  SF<>OF  ZF=1   JG/JNLE  op1>op2  òîîíû õóâüä  SF=OF  ZF=0   JGE/JNL  op1>=op2  SF=OF  _____________________________________________________________________________________________   JB/JNAE  op1<op2  CF=1   JBE/JNA  op1<=op2  òýìäýãã¿é  CF=1  ZF=1   JA/JNBE  op1>op2  òîîíû õóâüä  CF=0  ZF=0   JAE/JNB  op1>=op2  CF=0 ______________________________________________________________________________________________
ͺõöºëò óäèðäëàãûí 2 äàõü á¿ëýã êîìàíä íü òîäîðõîé ôëàãèéí óòãààñ õàìààðóóëàí óäèðäëàãûã äàìæóóëàõ êîìàíä îðäîã. ¯¿íä: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Öèêëèéí êîìàíä ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],i=n Öèêëèéí áèå i=i-1 i>0 òèéì ¿ã¿é
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ëîãèê êîìàíäóóä Ëîãèê êîìàíä: NOT, AND, OR, XOR, TEST Îíöëîã: 1. áèò¿¿ä äýýð õèéíý   2. ôëàãèéí óòãûã ººð÷èëíº.   3. îïåðàíä áàéò, ýñâýë ¿ã áàéíà. Ëîãè¿éëäëèéí ¿ð ä¿í: Êîìàíäóóäûí åðºíõèé õýëáýð: 1. NOT op  ôîðìàò: [r, m]  2. AND op1,op2  [r,r  r,m  r,c  m,r  m,c]  op1=<op1> AND <op2> TEST op1,op2  AND êîìàíäòàé àäèëõàí, ¿ð ä¿íã õàäãàëàõã¿é. op2 – ìàñêà ãýæ íýðëýãäýõ òîãòìîë óòãà áàéíà. <Op2>- 00001111=0Fh 3. OR op1,op2  [r,r  r,m  r,c  m,r  m,c]  op1=<op1> OR <op2> 4. XOR op1,op2  [r,r  r,m  r,c  m,r  m,c]  op1=<op1> XOR <op2> Æèøýý: NOT  AX  NOT  x AND  AX,BX  AND  x,00001111b  TEST  BX,11110000b OR  AX,x  OR  AX,10000000b  XOR  AX,AX  0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 0 x XOR y x OR y x  AND y NOT x y x
Ñäâèã õèéõ êîìàíäóóä ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],op CF op op op CF CF CF
Ëåêö  4 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Массив ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],A A+0 A+2 A+4 A+38 0 1 2 19
2 хэмжээст массив бараг адилхан. Жишээ нь: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Структур ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Бичлэг төрөл ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],b a 3 4
Мөртэй ажиллах команд ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2 . Тэмдэгтийг мөртэй жиших команд:  SCASB, SCASW Жиших тэмдэгтийг байт бол  AL -д, үг бол  AX -д байрлуулах бөгөөд мөрийн хаягыг  ES:DI  регистрээр заана. Чиглэлийг өмнөхийн адил тогтооно. Префикс ашиглана. Жишээ нь: REPE  SCASB  – команд мөрд тэнцүү биш эхний тэмдэгт гарч иртэл давтана. Эсвэл  CX=0 REPNE  SCASB -команд мөрд эхний тэнцүү тэмдэгт гарч иртэл давтана. Эсвэл  CX=0 . Жишээ:  N  урттай  S  мөрд байгаа эхний  ‘*’  –г  ‘.’ –ээр солих програмын хэсгийг авч үзье. CLD PUSH DS POP  ES LEA  DI, S MOV  CX,N MOV  AL,’*’ REPNE  SCASB JNE  fin MOV  BYTE PTR ES:[DI-1], ‘.’ fin: . . . 3. Мөрийг шилжүүлэх команд –  MOVSB, MOVSW DS:SI  хаягтай мөрийг  ES:DI  хаягтай мөрд шилжүүлнэ. Команд нэг удаа биелэхэд нэг л тэмдэгт зөөгдөнө. Иймд  CX –д мөрийн уртыг хийж, зөвхөн  REP  префиксийг хэрэглэнэ. 4. Мөрд тэмдэгтийг хадгалах команд –  STOSB, STOSW   AL(AX)  – д байгаа тэмдэгтийг  ES:DI  хаягтай мөрд хадгална. Зөвхөн  REP  префиксийг хэрэглэнэ. Жишээ: MOV  AL, ‘ ‘ CLD LEA  DI, S MOV  CX, N REP  STOSB 5. Мөрөөс тэмдэгтийг унших команд –  LODSB, LODSW Мөрд байгаа  ES:DI  хаягтай тэмдэгтийг  AL(AX)  – д уншина. Давталт хэрэглэхгүй
Процедур ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ïðîöåäóðûí ëîêàëü ºãºãäºë ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],SP BP . . . RET adress BP A B
Òàñàëäàë ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ïîðò ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ìàñðîêîìàíä ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ìàñðîêîìàíä, ïðîöåäóð õî¸ðûí àäèë òàë: ßëãààòàé òàë: - Ïðîãðàìä íýã õýñýã áîëîí áè÷èãäýíý. - Ãîë íü òýäãýýðèéã áèåë¿¿ëýõýä áàéäàã. - Ïðîãðàìûí äóðûí áàéðíààñ õàíäàæ áîëíî. Åð íü ïðîãðàìûí õýìæýýã áàãà áàéëãàõ - Ïðîãðàìûã áè÷èõ ÿâäëûã õÿëáàð÷ëàíà. ãýâýë ïðîöåäóðûã, áèåëýõ õóãàöààã áàãà áàéëãàõ ãýâýë ìàñðîêîìàíäûã õýðýãëýíý. Ìàñðîêîìàíäàíä ïàðàìåòð àøèãëàäàã. Æèøýý áîëãîí ñàíàõ îéí íýã áàéòûã ÿíç á¿ðèéí óòãààð íýìýãä¿¿ëýõ õÿëáàð ïðîãðàì àâ÷ ¿çüå. SUMMA  MACRO  const ADD  memb, const ENDM data  SEGMENT ASSUME  DS:data memb  DB  0 one  EQU  1 data  ENDS code  SEGMENT ASSUME  CS:code MOV  AX, data MOV  DS, AX SUMMA  2 SUMMA  7 SUMMA  one code  ENDS   END Ìàñðîêîìàíä õýä õýäýí ïàðàìåòðòàé áàéæ áîëíî: EXAMPLE  MACRO  par1, par2, par3 Èéì ìàñðîä õàíäàõäàà áè÷èãäñýí äàðààëëààð íü á¿õ ïàðàìåòð¿¿äûí óòãûã áè÷èæ ºãíº. Ìàñðîä õàíäàõ ¿åä ïàðàìåòð íü òîãòìîë, ñàíàõ îé, ðåãèñòð òºäèéã¿é õàÿã áàéæ áîëíî. EXAMPLE  5, [BX], memb
Ìàñðîêîìàíäûí îïåðàòîð Ìàñðîêîìàíä íü àññåìáëåð õýëíèé äóðûí êîìàíäûã àøèãëàæ áîëîõîîñ ãàäíà ººðèéí ãýñýí îïåðàòîðòàé áàéäàã. ¯¿íèé íýã íü íºõöºëò îïåðàòîð þì. Åðºíõèé õýëáýð: IFxx  <èëýðõèéëýë> IFxx  <èëýðõèéëýë> . . . . . . ELSE ENDIF . . . ENDIF IFxx îïåðàòîð äàðààõ õýëáýð¿¿äèéí íýã áàéíà: IF <èëýðõèéëýë> - èëýðõèéëëèéí óòãà òýãòýé òýíö¿¿ áèø áîë IFE <èëýðõèéëýë> - èëýðõèéëëèéí óòãà òýãòýé òýíö¿¿ áîë IFDEF <íýð> - íýð EXTRNAL áîë IFNDEF <íýð> - íýð EXTRNAL áèø áîë IFB <ïàðàìåòð> - ïàðàìåòð ïðîáåë áîë IFNB <ïàðàìåòð> - ïàðàìåòð ïðîáåë áèø áîë IFIDN <S1>,<S2> - S1 ìºð S2 ìºðòýé òýíö¿¿ áîë IFDIF <S1>,<S2> -  S1 ìºð S2 ìºðòýé òýíö¿¿ áèø áîë Æèøýý: ADDX MACRO  x  code SEGMENT IFE  1-TYPE  x ASSUME  CS:code, DS:data   ADD  AH, x  MOV  AX, data ELSE MOV  DS, AX   IFE  2-TYPE  x  MOV  AX, 0   ENDIF  ADDX  memx   ENDIF  code ENDS   ENDM  END data SEGMENT memx  DB  0Ah data ENDS
Äàâòàëòûí îïåðàòîð ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Îïåðàòîð EXITM Ìàñðîêîìàíäààñ øóóä ãàðàõ ¿åä ýíý îïåðàòîðûã õýðýãëýíý. Çàðèì ¿åä IF îïåðàòîðò õýðýãëýõýä òîõèðîìæòîé áàéäàã. Îïåðàòîð LOCAL LOCAL îïåðàòîð òóõàéí ìàñðîêîìàíäàíä àøèãëàãäàõ ì¸òêûã òîäîðõîéëäîã.Ýíý íü ìàñðîêîìàíäûã äàõèí àøèãëàõ áîëîìæèéã îëãîäîã. Æèøýý: PAUSE  MACRO  sec  LOCAL  start MOV  CX, sec start: LOOP  start ENDM code SEGMENT ASSUME  CS:code PAUSE  5000 PAUSE  10000 code ENDS END ;; - òàéëáàð ìàñðîêîìàíäàíä áè÷èõýä õýðýãëýíý. & - àðäàõ òýìäýãòýý çàëãàæ ºãíº. ! – äóðûí òýìäýãò îðóóëàõ áîëîìæ îëãîíî. % - àðäàõ èëýðõèéëëýý òîîí óòãà áîëãîí õºðâ¿¿ëíý.
Стек, стекийн сегмент ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],SS SP Стекийн сегмент
Стектэй ажиллах жишээ: 1. Регистрийн утгыг хадгалах PUSH  DX PUSH  CX . . .  ; DX, CX  –г ашиглах POP  CX POP  DX 2. Утгыг стекээр дамжуулах PUSH  a POP  b  ; b  a 3. стек хоосон ба дүүрсэн эсэхийг шалгах SP=0  ; стек дүүрэн SP=K  ; стек хоосон (K  элемент ) 4. Стекийг цэвэрлэх ба сэргээх ADD  SP,2 x K  ;  стекээс К үг цэвэрлэх MOV  AX,SP . . .    ;  стекэд бичих   MOV  SP,AX 5. Стекийн элементийг ашиглах PUSH, POP  команд зөвхөн стекийн оройтой ажилдаг. Бусад элементийг ашиглах гэвэл эдгээр командаар тохиромжгүй. Иймд  BP  регистрийг хэрэглэнэ. MOV  BP, SP MOV  AX, [BP+4]  ; AX   c SP  регистрийг ингэж ашиглаж болохгүй.   [BP+4]    SS:[BP+4]  гэж ойлгоно. BP -н  оронд  BX –г авбал  DS  сегментээс авах болно. BP,SP +2 +4 a b c
Ëåêö 5 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Îëîí ìîäóëüò ïðîãðàìûí òóõàé ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2 äàõü àðãà íü èë¿¿ òîõèðîìæòîé. Ìîäóëü á¿ðèéã (m1.ASM, m2.ASM, . . . ,mK.ASM) ïðîãðàì áîëãîí áè÷íý. C:gt;TASM  m1.ASM, m1.OBJ, m1.LST; Ýíý ìàÿãààð á¿õ ìîäóëèéã õºðâ¿¿ëæ, OBJ ìîäóëü ¿¿ñãýõ áà òýäãýýðèéã  íýãòãýæ ìàøèíû íýã ïðîãðàì ¿¿ñãýíý. C:gt;TLINK  m1.OBJ+m2.OBJ+ . . . +mK.OBJ, m.EXE m1.OBJ  . . .  TLINK     m.EXE  mK.OBJ  Íýãýíò áýëýí áîëñîí ïðîãðàìûã äàðààõ êîìàíäààð øóóä áèåë¿¿ëíý. C:gt;m.EXE  ýñâýë  C:gt;m
Ìîäóëü äàõü ãàäààä áà åðºíõèé íýð ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ìàíàé æèøýýíä m2  ìîäóëüä äàðààõ ìàÿãààð çàðëàíà. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object]
EXTRN  x:WORD ; ñåãìåíòèéí ãàäíà áàéðëàñàí  A SEGMENT EXTRN  y:WORD ; À ñåãìåíò äîòîð áàéðëàñàí  . . .  A ENDS B SEGMENT  EXTRN  z:WORD  ; Â ñåãìåíò äîòîð áàéðëàñàí  . . .  B ENDS . . .  ASSUME  ES:A,DS:B  . . .  INC  x  ; DS:x INC  x[BP]  ; SS:x[BP]   INC  y  ; ES:y  INC  y[BP]  ; ES:y[BP]  INC  z  ; DS:z  INC  z[BP] ; DS:z[BP]
Ñàíàìæ: PUBLIC äèðåêòèâ õóâüñàã÷èéã ñåãìåíòëýõýä ¿¿ðýãã¿é ó÷èð õààíà ÷  áàéðëàæ áîëîõ áà ìîäóëèéí ýõýíä áàéðëàõ íü ÿìàð íýð ýíý  ìîäóëèàñ ýêñïîðòëîãäîæ áàéíà âý, ÿìàð íýð åðºíõèé áàéíà âý  ãýäýã íü òîäîðõîé õàðàãäàæ áàéäàã. - Ãàäààä íýðèéã çºâ ñåãìåíòëýõ íü àñóóäëûí çºâõºí íýã òàë íü þì. ª.õ ýíý íü êîìàíäûã çºâ õºðâ¿¿ëýëò õèéõýä àøèãëàãäàõ áîëîõîîñ çºâ áèåë¿¿ëýõ íºõöëèéã õàíãàõã¿é. Æèøýý àâ÷ ¿çüå. ; --- m1 ---  ; --- m2 ---  A  SEGMENT  PUBLIC  x    EXTRN  x:WORD  B  SEGMENT    y  DW  0    x  DW  ?  A  ENDS  B  ENDS  . . . . . .  ASSUME  DS:A  Õýðýâ m1 ìîäóëüä x:=y ¿éëäëèéã ã¿éöýòãýõ ãýâýë: MOV  AX,y MOV  x,AX êîìàíäóóäûí äàðààëàë áè÷èæ áîëîõ óó, º.õ äýýðõè ¿éëäëèéã çºâ õèéõ ¿¿ ãýäýã àñóóäàë ãàðíà.
MOV  AX,y êîìàíä çºâ áèåëíý. Ó÷èð íü y õóâüñàã÷ m1 ìîäóëüä áàéãàà À ñåãìåíòýíä òîäîðõîéëîãäñîí. Õàðèí MOV  x,AX êîìàíä áóðóó áèåëíý. Ó÷èð íü õ õóâüñàã÷ m2 ìîäóëüä áàéãàà  ñåãìåíòýä òîäîðõîéëîãäñîí òóë DS ðåãèñòðýýð ñåãìåíòëýãäýõã¿é. Èéìä SEG ïðåôèêñ àøèãëàí äàðààõ ìàÿãààð m1 ìîäóëüä øèéäýæ ºãíº. ; --- m1 --- . . .  MOV  AX,y  ; AX  y  PUSH  DS  ; DS    stack  MOV  BX,SEG x  ; BX  segment(x)  MOV  DS,BX  ; DS    BX  MOV  x,AX  ; x    AX  POP  DS  ; reset DS . . .
INCLUDE äèðåêòèâ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
EXE áà COM ôàéë ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
çºâõºí êîä ñåãìåíòð¿¿ õàíääàã áàéõààð óðüä÷èëàí òîîöîîëîãäñîí áàéõ  ¸ñòîé. Èéìä DS ðåãèñòðò  CS-èéí óòãûã ºãºõ êîìàíäûí äàðààëëûã äàðààõ  ìàÿãààð áè÷âýë çºâ þì. PUSH  CS POP  DS Áèä ºìíº ýíý ¿éëäëèéã êîä ñåãìåíò CODE íýðòýé áàéõ ¿åä äàðààõ ìàÿãààð áè÷èæ áàéñàí.  MOV  AX,CODE MOV  DS,AX COM ôàéëûí õóâüä èíãýæ áè÷âýë áóðóó áîëíî. ̺í COM ôàéëûí õóâüä CS,DS,ES,SS ðåãèñòð¿¿äèéí óòãà öºìººðºº   ïðîãðàì óíøèãäñàí òýð ñåãìåíòèéí óòãààð òîãòîîãääîã. Ïðîãðàì ñåãìåíòèéí ýõýíä áàéðëàäàã áîë ñòåê ñåãìåíòèéí òºãñãºëä áàéðëàíà. EXE ôàéëûí õóâüä CS,IP áà SS,SP ðåãèñòð¿¿äèéí óòãà ôàéëûí òîëãîéä ºãºãäºíº. Õàðèí DS,ES ðåãèñòð¿¿äèéí óòãà ïðîãðàì à÷ààëàãäàõ ¿åä òîãòîîãääîã.  COM ôàéëûí êîìàíäûí ýõíèé øèëæëýã 100Í áàéäàã áîë EXE ôàéëûí õóâüä ÿìàð÷ áàéæ áîëíî. ª.õ END  start  ìàÿãààð øèëæëýãèéã òîäîðõîéëíî.
EXE ôàéëûã COM ôàéëä õºðâ¿¿ëýõ ÄÎÑ ñèñòåìä EXE2BIN ïðîãðàì áàéäàã. Ýíý ïðîãðàìààð EXE ôàéëûã COM ôàéëä õºðâ¿¿ëäýã. Ãýâ÷ á¿õ EXE ôàéëûã õºðâ¿¿ëæ ÷àäàõã¿é. Õàðèí DEBUG ïðîãðàìûã àøèãëàí ÿìàð÷ EXE ôàéëûûã õºðâ¿¿ëæ áîëäîã. Ýíý àðãûã àâ÷ ¿çüå. SAMPLE.ASM ãýæ íýðëýñýí õÿëáàð ïðîãðàì àâúÿ.   PAGE  ,132 TITLE  EXE  COM CODE  SEGMENT ASSUME  CS:CODE,DS:CODE ORG  100H LEA  DX,MSG MOV  AH,9H INT  21H INT  20H MSG  DB  ‘TEST PROGRAM’,10,13,’$’ CODE  ENDS END
Ýíý ïðîãðàì COM ôàéëä õºðâ¿¿ëýãäýõýýð çîõèîãäñîí áàéíà. COM ôàéëä õºðâ¿¿ëýõèéí òóëä äàðààõ ¿éëäë¿¿äèéã ã¿éöýòãýíý. - TASM  SAMPLE.ASM; - TLINK  SAMPLE.OBJ; - RENAME  SAMPLE.EXE  SAMPLE.COM - DEBUG  SAMPLE.COM - Ïðîãðàìûã 100 øèëæëýãýýñ ýõýëñýí áàéõààð 纺íº.   M  400  1000  100  400-ààñ ýõýëñýí 1000 óðòòàé ïðîãðàìûã 100-ä 纺õ - Ïðîãðàìûí óðòûã òîäîðõîéëîõ   U  100   D  100 - Ïðîãðàìûí óðòûã CX ðåãèñòðò õèéõ   R  CX   CX  0380  ; õóó÷èí óòãà íü   :120 ; ïðîãðàìûí óðòûã 120 ãýæ àâ÷ áàéíà - Ôàéëûã äèñêýíä áè÷èõ   W  ; 120 áàéòûã äèñêýíä áè÷íý - DEBUG-ààñ ãàðàõ   Q Èíãýæ ¿¿ññýí SAMPLE.COM ïðîãðàìûã øóóä àæèëëóóëæ áîëíî.   C:>SAMPLE TEST PROGRAM ¿ãèéã äýëãýöýíä áè÷èæ, ÄÎÑ-ä óäèðäëàãà øèëæèíý.
PSP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

Lecture5 aлгоритм түүний_шинжчанар
Lecture5 aлгоритм түүний_шинжчанарLecture5 aлгоритм түүний_шинжчанар
Lecture5 aлгоритм түүний_шинжчанарGantur Togtokh
 
Physics unit10-lesson
Physics unit10-lessonPhysics unit10-lesson
Physics unit10-lessonmatrice107
 
Or.reaction
Or.reaction Or.reaction
Or.reaction davaa627
 
Απόφαση Προσαρμογής ΚΤΣ 97
Απόφαση Προσαρμογής ΚΤΣ 97Απόφαση Προσαρμογής ΚΤΣ 97
Απόφαση Προσαρμογής ΚΤΣ 97itdevdamt
 
8 р анги хими бие даалт
8 р анги хими бие даалт8 р анги хими бие даалт
8 р анги хими бие даалтTsedev Tsedvee
 
8 р анги бие даалт
8 р анги бие даалт8 р анги бие даалт
8 р анги бие даалтTsedev Tsedvee
 
Mng Nso En Mics2005 V2[1].0 Overview
Mng Nso En Mics2005 V2[1].0 OverviewMng Nso En Mics2005 V2[1].0 Overview
Mng Nso En Mics2005 V2[1].0 OverviewMarketing manager
 
Olimpiada informatikes 2012
Olimpiada informatikes 2012Olimpiada informatikes 2012
Olimpiada informatikes 2012Albi Muca
 
Uts tailan
Uts tailanUts tailan
Uts tailanazkhuu
 
Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Cvp analysis
Cvp analysisCvp analysis
Cvp analysissekukhr
 
Òîãòìîë ã¿éäëèéí ìàøèíû á¿òýö õèéö
Òîãòìîë ã¿éäëèéí ìàøèíû á¿òýö õèéöÒîãòìîë ã¿éäëèéí ìàøèíû á¿òýö õèéö
Òîãòìîë ã¿éäëèéí ìàøèíû á¿òýö õèéözaluu_medleg
 
8 р анги хими бие даалт
8 р анги хими бие даалт8 р анги хими бие даалт
8 р анги хими бие даалтTsedev Tsedvee
 

What's hot (17)

Lecture5 aлгоритм түүний_шинжчанар
Lecture5 aлгоритм түүний_шинжчанарLecture5 aлгоритм түүний_шинжчанар
Lecture5 aлгоритм түүний_шинжчанар
 
Physics unit10-lesson
Physics unit10-lessonPhysics unit10-lesson
Physics unit10-lesson
 
Or.reaction
Or.reaction Or.reaction
Or.reaction
 
-tadvin 24-04-93
-tadvin   24-04-93-tadvin   24-04-93
-tadvin 24-04-93
 
Poultry
PoultryPoultry
Poultry
 
Απόφαση Προσαρμογής ΚΤΣ 97
Απόφαση Προσαρμογής ΚΤΣ 97Απόφαση Προσαρμογής ΚΤΣ 97
Απόφαση Προσαρμογής ΚΤΣ 97
 
8 р анги хими бие даалт
8 р анги хими бие даалт8 р анги хими бие даалт
8 р анги хими бие даалт
 
8 р анги бие даалт
8 р анги бие даалт8 р анги бие даалт
8 р анги бие даалт
 
2011 eec abcd
2011 eec abcd2011 eec abcd
2011 eec abcd
 
Mng Nso En Mics2005 V2[1].0 Overview
Mng Nso En Mics2005 V2[1].0 OverviewMng Nso En Mics2005 V2[1].0 Overview
Mng Nso En Mics2005 V2[1].0 Overview
 
Olimpiada informatikes 2012
Olimpiada informatikes 2012Olimpiada informatikes 2012
Olimpiada informatikes 2012
 
Uts tailan
Uts tailanUts tailan
Uts tailan
 
Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Cvp analysis
Cvp analysisCvp analysis
Cvp analysis
 
E1 blank
E1 blankE1 blank
E1 blank
 
Òîãòìîë ã¿éäëèéí ìàøèíû á¿òýö õèéö
Òîãòìîë ã¿éäëèéí ìàøèíû á¿òýö õèéöÒîãòìîë ã¿éäëèéí ìàøèíû á¿òýö õèéö
Òîãòìîë ã¿éäëèéí ìàøèíû á¿òýö õèéö
 
8 р анги хими бие даалт
8 р анги хими бие даалт8 р анги хими бие даалт
8 р анги хими бие даалт
 

Assembler

  • 1. Ñèñòåì ïðîãðàìì÷ëàë áà àññåìáëåð õýë Ëåêö -24 öàã Ëàáîðàòîðè – 32 öàã Íèéò êðåäèò – 2,5 7 õîíîãò ëåêö – 4 öàã (6 äîëîî õîíîã îðíî) Ëàá – 2 öàã (16 äîëîî õîíîã îðíî) ßâöûí øàëãàëò: 7 äàõ äîëîî õîíîã, 14 äýõ äîëîî õîíîã
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Íàéìòûí àðèôìåòèê 16 15 14 13 12 11 10 7 7 15 14 13 12 11 10 7 6 6 14 13 12 11 10 7 6 5 5 13 12 11 10 7 6 5 4 4 12 11 10 7 6 5 4 3 3 11 10 7 6 5 4 3 2 2 10 7 6 5 4 3 2 1 1 7 6 5 4 3 2 1 0 0 7 6 5 4 3 2 1 0 +
  • 7. 2-ò, 10-ò, 16-òûí õàìààðàë F 15 1111 10 16 10000 E 14 1110 D 13 1101 C 12 1100 B 11 1011 A 10 1010 9 9 1001 8 8 1000 7 7 111 6 6 110 5 5 101 4 4 100 3 3 11 2 2 10 1 1 1 0 0 0 16-ò 10-ò 2-ò
  • 8.
  • 9. Ìýäýýëëèéã ä¿ðñëýõ 1.Õî¸ðòûí ìýäýýëýë: Òîîí ìýäýýëýë: áàéò Òýìäýãã¿é òîî ¿ã Òýìäýãòýé òîî 2 ¿ã Ѻðºã òîîã 2-òûí ã¿éöýýëòýýð ä¿ðñëýíý gon(x)=2 k -mod(x) gon(-1)=2 8 -1=256-1=255=FFh gon(-2)=gon(-1)-1=255-1=254=FEh gon(-128)=2 8 -128=256-128=128=80h Òîîí áóñ ìýäýýëýë öýã, ä¿ðñ äóó àâèà áîëîí áóñàä 2. Òýìäýãò ìýäýýëýë: 1 òýìäýãò 1 áàéò ýçýëíý. (ASCII êîä) 1 òýìäýãò 2 áàéò ýçýëíý. (UNICOD) Äàðààëñàí òýìäýãò äàðààëñàí áàéò (¿ã) –ä áàéðëàíà. 3. Êîìàíä ïðîöåñîð áèåë¿¿ëýõ, òóãàé õýëáýðòýé áè÷èãäñýí ìýäýýëýë þì. ¯éëäëèéí êîä, ¿éëäýëä îðîõ îïåðàíäûí õàÿã çýðãýýñ òîãòîíî.1-6 áàéò ýçýëíý. òîî òýìäýãò êîìàíä Æèøýý ðåãèñòðèéí õóâüä 10101010 11000011 00001111 11110000 00000000 11111111 00010011 10011010 R E T U P M O C EA 0001 0002 A5 0000 1000 0004 A000 r2 r1 11 w kod Kod - ¿éëäëèéí êîä, w – 0 áîë áàéò ðåãèñòð 1 áîë ¿ã ðåãèñòð r – ðåãèñòðèéã çààõ 3 áèò óòãà, Æèøýý íü r – 000 áîë AX r – 001 áîë CX r – 100 áîë SP r – 101 áîë BP MOV AX,BX – 1000 1011 1100 0011 – 8B C3
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. Ǻâ áè÷èãäñýí ïðîãðàìûã õºðâ¿¿ëæ, øàëãàí ç¿ãøð¿¿ëæ àæëûí áýëýí ïðîãðàì ¿¿ñãýäýã. Ïðîãðàìûã ÿàæ õºðâ¿¿ëýõèéã äàðààõ ñõåìýýð õàðóóëúÿ. Ïðîãðàìûí àíõíû òåêñòèéã îðóóëàõ PROG1.ASM | Îáúåêò ìîäóëü ¿¿ñãýõ TASM.EXE PROG1.OBJ | Ïðîãðàìóóäûã õîëáîæ åõå ôàéë ¿¿ñãýõ TLINK.EXE PROG1.EXE | Ïðîãðàìûã øàëãàí ç¿ãøð¿¿ëýõ DEBUG.EXE Æèøýý: Ïðîãðàìûí àíõíû òåêñòèéã äóðûí òåêñò çàñâàðëàõ ïðîãðàìààð áýëòãýæ áîëîõ áà íýðèéí ºðãºòãºëèéã çààâàë .ASM ãýæ õàäãàëíà. C>TASM PROG1.ASM; PROG1.OBJ ôàéë ¿¿ñíý. Àëäàà áàéâàë àëäààíû ìýäýý ãàðíà. C>TLINK PROG1.OBJ; PROG1.EXE ôàéë ¿¿ñíý. C>DEBUG PROG1.EXE
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. Àðèôìåòèê ¿éëäëèéí êîìàíäóóä 1. Íýìýõ ¿éëäëèéí êîìàíä - ADD Åðºíõèé õýëáýð: ADD op1,op2 ôîðìàò íü: [r/r r/m r/c m/r m/c] Õî¸ð òîîã íýìæ, ¿ð ä¿íã 1-ð îïåðàíäàä áàéðëóóëíà. Op1=<op1>+<op2> Æèøýý: ADD AH,BH ADD AX,9 ADD x,DX ADD x,7 2. Õàñàõ ¿éëäëèéí êîìàíä Åðºíõèé õýëáýð: SUB op1,op2 ôîðìàò íü: [r/r r/m r/c m/r m/c] op1=<op1>-<op2> Æèøýý: SUB AX,BX SUB CX,a SUB DX,3 SUB a,DH 3. Ðåãèñòðèéí óòãûã íýãýýð íýìýãä¿¿ëýõ – INC, õîðîãäóóëàõ – DEC, îïåðàíäûí òýìäýãèéã ººð÷ëºõ – NEG êîìàíä áàéäàã. Åðºíõèé õýëáýð: INC op ôîðìàò: [r] op=<op>+1 Æèøýý: INC BX DEC op [r] op=<op>-1 DEC AX NEG op [r,m] op=-<op> NEG BL 4. Carry ôëàãèéã òîîöîæ íýìýõ – ADC, carry ôëàãèéã òîîöîæ õàñàõ – SBC êîìàíä áàéäàã. Åðºíõèé õýëáýð: ADC op1,op2 ôîðìàò: ADD-í àäèë op1=<op1>+<op2>+CF SBC op1,op2 SUB-í àäèë op1=<op1>-<op2>-CF Æèøýý: 13A0F120h + 4000200Ah íèéëáýðèéã îëîõäîî ýõëýýä áàãà ¿ãèéã ADD êîìàíäààð, äàðàà íü àõìàä ¿ãèéã ADC êîìàíäààð íýìíý. Ýíý ìàÿãààð ADC êîìàíäûã àøèãëàí õýäýí ÷ áàéò óòãûã íýìæ áîëíî. ßã ¿¿íèé àäèë carry-òàé õàñàõ ¿éëäëèéã ã¿éöýòãýíý.
  • 20. 5. ¯ðæèõ ¿éëäýë: òýìäýãã¿é á¿õýë òîîã ¿ðæèõ-MUL, òýìäýãòýé á¿õýë òîîã ¿ðæèõ-IMUL êîìàíä Åðºíõèé õýëáýð: MUL op ôîðìàò: [r, m, c] 2 áàéòûã ¿ðæèõýä AX=AL x <op> IMUL op 2 ¿ãèéã ¿ðæèõýä DX:AX=AX x <op> Æèøýý: n DB 10 . . . MOV AL,2 MUL n ;AX=2 x 10=0014h AH=00h AL=14h MOV AL,28 MUL n ;AX=28 x 10=0104h AH=01h AL=04h MOV AX,8 MOV BX,-1 IMUL BX ;DX:AX=-1 x 8=0FFFFFFF8h AX=0FFF8h DX=0FFFFh 6. Õóâààõ ¿éëäýë: òýìäýãã¿é á¿õýë õóâààëò-DIV, òýìäýãòýé á¿õýë õóâààëò-IDIV êîìàíä Åðºíõèé õýëáýð: DIV op ôîðìàò: [r, m, c] ¯ãèéã áàéòàä õóâààõàä: AH,AL=AX:<op> IDIV op AH-ä ¿ëäýãäýë,AL-íîîãäâîð 2 ¿ãèéã ¿ãýä õóâààõàä: DX,AX=(DX:AX):<op> DX-¿ëäýãäýë,AX-íîîãäâîð Æèøýý: n DB 5 . . . MOV AX,17 DIV n ;AX:n=17:5=>íîîãäâîð AL=3,¿ëäýãäýë AH=2 MOV DX,0 MOV AX,17 MOV BX,5 DIV BX ; (DX:AX):BX=17:5 => íîîãäâîðAX=0002h, ¿ëäýãäýë DX=0003h
  • 21. 7. Òîîíû õýìæýýã ººð÷ëºõ êîìàíä Àðèôìåòèê ¿éëäýëä îðæ áàéãàà 2 îïåðàíä(¿ðæèõ, õóâààõ îðîõã¿é) çààâàë íýã òºðëèéí áàéõ ¸ñòîé. Æèøýýëáýë ¿ã äýýð áàéò òîîã íýìæ áîëîõã¿é. Èéìä áàéòûã ¿ã áîëãîæ õóâèðãàõ õýðýãòýé. Áàéòûã ¿ã áîëãîæ õóâèðãàõ – CBW, ¿ãèéã 2 ¿ã áîëãîæ õóâèðãàõ – CWD êîìàíäóóä áàéäàã. Åðºíõèé õýëáýð: CBW îïåðàíäã¿é êîìàíä, õóâèðãàõ áàéò AL-ä, ¿ð ä¿í AX-ä CWD õóâèðãàõ ¿ã AX-ä, ¿ð ä¿í (DX:AX)-ä áàéðëàíà. Æèøýý: MOV AL,32 ; 20h->AL CBW ; 0020h->AX MOV AL,-3 ; 0E0h->AL CBW ; 0FFE0h->AX MOV AX,32 ; 0020h->AX CWD ; 0000h->DX, 0020h->AX MOV AX,-3 ; 0FFE0h->AX CWD ; 0FFFFh->DX, 0FFE0h->AX
  • 22. Óäèðäëàãûí êîìàíä Óäèðäëàãûí êîìàíäûã 2 àíãèëíà: 1. ͺõöºëò áóñ äàìæóóëàëò – JMP Åðºíõèé õýëáýð: JMP <ì¸òêà> ì¸òêà-êîìàíäûã íýðëýñýí íýð JMP êîìàíä óäèðäëàãûã ì¸òêà-ààð òýìäýãëýãäñýí êîìàíäàä øóóä äàìæóóëíà. Æèøýý: JMP M . . . M: MOV AL,0 Óäèðäëàãûí êîìàíäûã óäèðäëàãà äàìæóóëæ áàéãàà çàéíààñ íü õàìààðóóëàí õîë, îéð äàìæóóëàëò ãýæ 2 àíãèëäàã. Îéð (near) äàìæóóëàëò çºâõºí IP ðåãèñòðèéí óòãûã ººð÷èëäºã áîë õîë (far) äàìæóóëàëò CS,IP ðåãèñòð¿¿äèéí óòãûã ººð÷èëíº. 2. ͺõöºëò äàìæóóëàëò ßìàð íýãýí íºõöºëººñ õàìààðóóëàí óäèðäëàãûã äàìæóóëíà. 2 ¿å øàòòàé: 1. õýìæèãäýõ¿¿í¿¿äèéã æèøèæ ¿ð ä¿íãýýñ íü õàìààðóóëàí ôëàãóóäûã ººð÷ëºíº. CMP op1,op2 2. ôëàãûí óòãààñ õàìààðóóëàí óäèðäëàãûã äàìæóóëíà. Jxx <ì¸òêà> _____________________________________________________________________________________________ Óäèðäëàãûí óäèðäëàãûí ¿éë÷ëýõ ôëàãèéí êîìàíä íºõöºë õ¿ðýý óòãà _____________________________________________________________________________________________ JE op1=op2 ÿìàð÷ òîîíû ZF=1 JNE op1<>op2 õóâüä ZF=0 _____________________________________________________________________________________________ JL/JNGE op1<op2 SF<>OF JLE/JNG op1<=op2 òýìäýãòýé SF<>OF ZF=1 JG/JNLE op1>op2 òîîíû õóâüä SF=OF ZF=0 JGE/JNL op1>=op2 SF=OF _____________________________________________________________________________________________ JB/JNAE op1<op2 CF=1 JBE/JNA op1<=op2 òýìäýãã¿é CF=1 ZF=1 JA/JNBE op1>op2 òîîíû õóâüä CF=0 ZF=0 JAE/JNB op1>=op2 CF=0 ______________________________________________________________________________________________
  • 23.
  • 24.
  • 25.
  • 26. Ëîãèê êîìàíäóóä Ëîãèê êîìàíä: NOT, AND, OR, XOR, TEST Îíöëîã: 1. áèò¿¿ä äýýð õèéíý 2. ôëàãèéí óòãûã ººð÷èëíº. 3. îïåðàíä áàéò, ýñâýë ¿ã áàéíà. Ëîãè¿éëäëèéí ¿ð ä¿í: Êîìàíäóóäûí åðºíõèé õýëáýð: 1. NOT op ôîðìàò: [r, m] 2. AND op1,op2 [r,r r,m r,c m,r m,c] op1=<op1> AND <op2> TEST op1,op2 AND êîìàíäòàé àäèëõàí, ¿ð ä¿íã õàäãàëàõã¿é. op2 – ìàñêà ãýæ íýðëýãäýõ òîãòìîë óòãà áàéíà. <Op2>- 00001111=0Fh 3. OR op1,op2 [r,r r,m r,c m,r m,c] op1=<op1> OR <op2> 4. XOR op1,op2 [r,r r,m r,c m,r m,c] op1=<op1> XOR <op2> Æèøýý: NOT AX NOT x AND AX,BX AND x,00001111b TEST BX,11110000b OR AX,x OR AX,10000000b XOR AX,AX 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 0 x XOR y x OR y x AND y NOT x y x
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. 2 . Тэмдэгтийг мөртэй жиших команд: SCASB, SCASW Жиших тэмдэгтийг байт бол AL -д, үг бол AX -д байрлуулах бөгөөд мөрийн хаягыг ES:DI регистрээр заана. Чиглэлийг өмнөхийн адил тогтооно. Префикс ашиглана. Жишээ нь: REPE SCASB – команд мөрд тэнцүү биш эхний тэмдэгт гарч иртэл давтана. Эсвэл CX=0 REPNE SCASB -команд мөрд эхний тэнцүү тэмдэгт гарч иртэл давтана. Эсвэл CX=0 . Жишээ: N урттай S мөрд байгаа эхний ‘*’ –г ‘.’ –ээр солих програмын хэсгийг авч үзье. CLD PUSH DS POP ES LEA DI, S MOV CX,N MOV AL,’*’ REPNE SCASB JNE fin MOV BYTE PTR ES:[DI-1], ‘.’ fin: . . . 3. Мөрийг шилжүүлэх команд – MOVSB, MOVSW DS:SI хаягтай мөрийг ES:DI хаягтай мөрд шилжүүлнэ. Команд нэг удаа биелэхэд нэг л тэмдэгт зөөгдөнө. Иймд CX –д мөрийн уртыг хийж, зөвхөн REP префиксийг хэрэглэнэ. 4. Мөрд тэмдэгтийг хадгалах команд – STOSB, STOSW AL(AX) – д байгаа тэмдэгтийг ES:DI хаягтай мөрд хадгална. Зөвхөн REP префиксийг хэрэглэнэ. Жишээ: MOV AL, ‘ ‘ CLD LEA DI, S MOV CX, N REP STOSB 5. Мөрөөс тэмдэгтийг унших команд – LODSB, LODSW Мөрд байгаа ES:DI хаягтай тэмдэгтийг AL(AX) – д уншина. Давталт хэрэглэхгүй
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40. Ìàñðîêîìàíä, ïðîöåäóð õî¸ðûí àäèë òàë: ßëãààòàé òàë: - Ïðîãðàìä íýã õýñýã áîëîí áè÷èãäýíý. - Ãîë íü òýäãýýðèéã áèåë¿¿ëýõýä áàéäàã. - Ïðîãðàìûí äóðûí áàéðíààñ õàíäàæ áîëíî. Åð íü ïðîãðàìûí õýìæýýã áàãà áàéëãàõ - Ïðîãðàìûã áè÷èõ ÿâäëûã õÿëáàð÷ëàíà. ãýâýë ïðîöåäóðûã, áèåëýõ õóãàöààã áàãà áàéëãàõ ãýâýë ìàñðîêîìàíäûã õýðýãëýíý. Ìàñðîêîìàíäàíä ïàðàìåòð àøèãëàäàã. Æèøýý áîëãîí ñàíàõ îéí íýã áàéòûã ÿíç á¿ðèéí óòãààð íýìýãä¿¿ëýõ õÿëáàð ïðîãðàì àâ÷ ¿çüå. SUMMA MACRO const ADD memb, const ENDM data SEGMENT ASSUME DS:data memb DB 0 one EQU 1 data ENDS code SEGMENT ASSUME CS:code MOV AX, data MOV DS, AX SUMMA 2 SUMMA 7 SUMMA one code ENDS END Ìàñðîêîìàíä õýä õýäýí ïàðàìåòðòàé áàéæ áîëíî: EXAMPLE MACRO par1, par2, par3 Èéì ìàñðîä õàíäàõäàà áè÷èãäñýí äàðààëëààð íü á¿õ ïàðàìåòð¿¿äûí óòãûã áè÷èæ ºãíº. Ìàñðîä õàíäàõ ¿åä ïàðàìåòð íü òîãòìîë, ñàíàõ îé, ðåãèñòð òºäèéã¿é õàÿã áàéæ áîëíî. EXAMPLE 5, [BX], memb
  • 41. Ìàñðîêîìàíäûí îïåðàòîð Ìàñðîêîìàíä íü àññåìáëåð õýëíèé äóðûí êîìàíäûã àøèãëàæ áîëîõîîñ ãàäíà ººðèéí ãýñýí îïåðàòîðòàé áàéäàã. ¯¿íèé íýã íü íºõöºëò îïåðàòîð þì. Åðºíõèé õýëáýð: IFxx <èëýðõèéëýë> IFxx <èëýðõèéëýë> . . . . . . ELSE ENDIF . . . ENDIF IFxx îïåðàòîð äàðààõ õýëáýð¿¿äèéí íýã áàéíà: IF <èëýðõèéëýë> - èëýðõèéëëèéí óòãà òýãòýé òýíö¿¿ áèø áîë IFE <èëýðõèéëýë> - èëýðõèéëëèéí óòãà òýãòýé òýíö¿¿ áîë IFDEF <íýð> - íýð EXTRNAL áîë IFNDEF <íýð> - íýð EXTRNAL áèø áîë IFB <ïàðàìåòð> - ïàðàìåòð ïðîáåë áîë IFNB <ïàðàìåòð> - ïàðàìåòð ïðîáåë áèø áîë IFIDN <S1>,<S2> - S1 ìºð S2 ìºðòýé òýíö¿¿ áîë IFDIF <S1>,<S2> - S1 ìºð S2 ìºðòýé òýíö¿¿ áèø áîë Æèøýý: ADDX MACRO x code SEGMENT IFE 1-TYPE x ASSUME CS:code, DS:data ADD AH, x MOV AX, data ELSE MOV DS, AX IFE 2-TYPE x MOV AX, 0 ENDIF ADDX memx ENDIF code ENDS ENDM END data SEGMENT memx DB 0Ah data ENDS
  • 42.
  • 43. Îïåðàòîð EXITM Ìàñðîêîìàíäààñ øóóä ãàðàõ ¿åä ýíý îïåðàòîðûã õýðýãëýíý. Çàðèì ¿åä IF îïåðàòîðò õýðýãëýõýä òîõèðîìæòîé áàéäàã. Îïåðàòîð LOCAL LOCAL îïåðàòîð òóõàéí ìàñðîêîìàíäàíä àøèãëàãäàõ ì¸òêûã òîäîðõîéëäîã.Ýíý íü ìàñðîêîìàíäûã äàõèí àøèãëàõ áîëîìæèéã îëãîäîã. Æèøýý: PAUSE MACRO sec LOCAL start MOV CX, sec start: LOOP start ENDM code SEGMENT ASSUME CS:code PAUSE 5000 PAUSE 10000 code ENDS END ;; - òàéëáàð ìàñðîêîìàíäàíä áè÷èõýä õýðýãëýíý. & - àðäàõ òýìäýãòýý çàëãàæ ºãíº. ! – äóðûí òýìäýãò îðóóëàõ áîëîìæ îëãîíî. % - àðäàõ èëýðõèéëëýý òîîí óòãà áîëãîí õºðâ¿¿ëíý.
  • 44.
  • 45. Стектэй ажиллах жишээ: 1. Регистрийн утгыг хадгалах PUSH DX PUSH CX . . . ; DX, CX –г ашиглах POP CX POP DX 2. Утгыг стекээр дамжуулах PUSH a POP b ; b  a 3. стек хоосон ба дүүрсэн эсэхийг шалгах SP=0 ; стек дүүрэн SP=K ; стек хоосон (K элемент ) 4. Стекийг цэвэрлэх ба сэргээх ADD SP,2 x K ; стекээс К үг цэвэрлэх MOV AX,SP . . . ; стекэд бичих MOV SP,AX 5. Стекийн элементийг ашиглах PUSH, POP команд зөвхөн стекийн оройтой ажилдаг. Бусад элементийг ашиглах гэвэл эдгээр командаар тохиромжгүй. Иймд BP регистрийг хэрэглэнэ. MOV BP, SP MOV AX, [BP+4] ; AX  c SP регистрийг ингэж ашиглаж болохгүй. [BP+4]  SS:[BP+4] гэж ойлгоно. BP -н оронд BX –г авбал DS сегментээс авах болно. BP,SP +2 +4 a b c
  • 46.
  • 47.
  • 48. 2 äàõü àðãà íü èë¿¿ òîõèðîìæòîé. Ìîäóëü á¿ðèéã (m1.ASM, m2.ASM, . . . ,mK.ASM) ïðîãðàì áîëãîí áè÷íý. C:gt;TASM m1.ASM, m1.OBJ, m1.LST; Ýíý ìàÿãààð á¿õ ìîäóëèéã õºðâ¿¿ëæ, OBJ ìîäóëü ¿¿ñãýõ áà òýäãýýðèéã íýãòãýæ ìàøèíû íýã ïðîãðàì ¿¿ñãýíý. C:gt;TLINK m1.OBJ+m2.OBJ+ . . . +mK.OBJ, m.EXE m1.OBJ . . . TLINK  m.EXE mK.OBJ Íýãýíò áýëýí áîëñîí ïðîãðàìûã äàðààõ êîìàíäààð øóóä áèåë¿¿ëíý. C:gt;m.EXE ýñâýë C:gt;m
  • 49.
  • 50.
  • 51.
  • 52. EXTRN x:WORD ; ñåãìåíòèéí ãàäíà áàéðëàñàí A SEGMENT EXTRN y:WORD ; À ñåãìåíò äîòîð áàéðëàñàí . . . A ENDS B SEGMENT EXTRN z:WORD ; Â ñåãìåíò äîòîð áàéðëàñàí . . . B ENDS . . . ASSUME ES:A,DS:B . . . INC x ; DS:x INC x[BP] ; SS:x[BP] INC y ; ES:y INC y[BP] ; ES:y[BP] INC z ; DS:z INC z[BP] ; DS:z[BP]
  • 53. Ñàíàìæ: PUBLIC äèðåêòèâ õóâüñàã÷èéã ñåãìåíòëýõýä ¿¿ðýãã¿é ó÷èð õààíà ÷ áàéðëàæ áîëîõ áà ìîäóëèéí ýõýíä áàéðëàõ íü ÿìàð íýð ýíý ìîäóëèàñ ýêñïîðòëîãäîæ áàéíà âý, ÿìàð íýð åðºíõèé áàéíà âý ãýäýã íü òîäîðõîé õàðàãäàæ áàéäàã. - Ãàäààä íýðèéã çºâ ñåãìåíòëýõ íü àñóóäëûí çºâõºí íýã òàë íü þì. ª.õ ýíý íü êîìàíäûã çºâ õºðâ¿¿ëýëò õèéõýä àøèãëàãäàõ áîëîõîîñ çºâ áèåë¿¿ëýõ íºõöëèéã õàíãàõã¿é. Æèøýý àâ÷ ¿çüå. ; --- m1 --- ; --- m2 --- A SEGMENT PUBLIC x EXTRN x:WORD B SEGMENT y DW 0 x DW ? A ENDS B ENDS . . . . . . ASSUME DS:A Õýðýâ m1 ìîäóëüä x:=y ¿éëäëèéã ã¿éöýòãýõ ãýâýë: MOV AX,y MOV x,AX êîìàíäóóäûí äàðààëàë áè÷èæ áîëîõ óó, º.õ äýýðõè ¿éëäëèéã çºâ õèéõ ¿¿ ãýäýã àñóóäàë ãàðíà.
  • 54. MOV AX,y êîìàíä çºâ áèåëíý. Ó÷èð íü y õóâüñàã÷ m1 ìîäóëüä áàéãàà À ñåãìåíòýíä òîäîðõîéëîãäñîí. Õàðèí MOV x,AX êîìàíä áóðóó áèåëíý. Ó÷èð íü õ õóâüñàã÷ m2 ìîäóëüä áàéãàà  ñåãìåíòýä òîäîðõîéëîãäñîí òóë DS ðåãèñòðýýð ñåãìåíòëýãäýõã¿é. Èéìä SEG ïðåôèêñ àøèãëàí äàðààõ ìàÿãààð m1 ìîäóëüä øèéäýæ ºãíº. ; --- m1 --- . . . MOV AX,y ; AX  y PUSH DS ; DS  stack MOV BX,SEG x ; BX  segment(x) MOV DS,BX ; DS  BX MOV x,AX ; x  AX POP DS ; reset DS . . .
  • 55.
  • 56.
  • 57. çºâõºí êîä ñåãìåíòð¿¿ õàíääàã áàéõààð óðüä÷èëàí òîîöîîëîãäñîí áàéõ ¸ñòîé. Èéìä DS ðåãèñòðò CS-èéí óòãûã ºãºõ êîìàíäûí äàðààëëûã äàðààõ ìàÿãààð áè÷âýë çºâ þì. PUSH CS POP DS Áèä ºìíº ýíý ¿éëäëèéã êîä ñåãìåíò CODE íýðòýé áàéõ ¿åä äàðààõ ìàÿãààð áè÷èæ áàéñàí. MOV AX,CODE MOV DS,AX COM ôàéëûí õóâüä èíãýæ áè÷âýë áóðóó áîëíî. ̺í COM ôàéëûí õóâüä CS,DS,ES,SS ðåãèñòð¿¿äèéí óòãà öºìººðºº ïðîãðàì óíøèãäñàí òýð ñåãìåíòèéí óòãààð òîãòîîãääîã. Ïðîãðàì ñåãìåíòèéí ýõýíä áàéðëàäàã áîë ñòåê ñåãìåíòèéí òºãñãºëä áàéðëàíà. EXE ôàéëûí õóâüä CS,IP áà SS,SP ðåãèñòð¿¿äèéí óòãà ôàéëûí òîëãîéä ºãºãäºíº. Õàðèí DS,ES ðåãèñòð¿¿äèéí óòãà ïðîãðàì à÷ààëàãäàõ ¿åä òîãòîîãääîã. COM ôàéëûí êîìàíäûí ýõíèé øèëæëýã 100Í áàéäàã áîë EXE ôàéëûí õóâüä ÿìàð÷ áàéæ áîëíî. ª.õ END start ìàÿãààð øèëæëýãèéã òîäîðõîéëíî.
  • 58. EXE ôàéëûã COM ôàéëä õºðâ¿¿ëýõ ÄÎÑ ñèñòåìä EXE2BIN ïðîãðàì áàéäàã. Ýíý ïðîãðàìààð EXE ôàéëûã COM ôàéëä õºðâ¿¿ëäýã. Ãýâ÷ á¿õ EXE ôàéëûã õºðâ¿¿ëæ ÷àäàõã¿é. Õàðèí DEBUG ïðîãðàìûã àøèãëàí ÿìàð÷ EXE ôàéëûûã õºðâ¿¿ëæ áîëäîã. Ýíý àðãûã àâ÷ ¿çüå. SAMPLE.ASM ãýæ íýðëýñýí õÿëáàð ïðîãðàì àâúÿ. PAGE ,132 TITLE EXE  COM CODE SEGMENT ASSUME CS:CODE,DS:CODE ORG 100H LEA DX,MSG MOV AH,9H INT 21H INT 20H MSG DB ‘TEST PROGRAM’,10,13,’$’ CODE ENDS END
  • 59. Ýíý ïðîãðàì COM ôàéëä õºðâ¿¿ëýãäýõýýð çîõèîãäñîí áàéíà. COM ôàéëä õºðâ¿¿ëýõèéí òóëä äàðààõ ¿éëäë¿¿äèéã ã¿éöýòãýíý. - TASM SAMPLE.ASM; - TLINK SAMPLE.OBJ; - RENAME SAMPLE.EXE SAMPLE.COM - DEBUG SAMPLE.COM - Ïðîãðàìûã 100 øèëæëýãýýñ ýõýëñýí áàéõààð 纺íº. M 400 1000 100 400-ààñ ýõýëñýí 1000 óðòòàé ïðîãðàìûã 100-ä 纺õ - Ïðîãðàìûí óðòûã òîäîðõîéëîõ U 100 D 100 - Ïðîãðàìûí óðòûã CX ðåãèñòðò õèéõ R CX CX 0380 ; õóó÷èí óòãà íü :120 ; ïðîãðàìûí óðòûã 120 ãýæ àâ÷ áàéíà - Ôàéëûã äèñêýíä áè÷èõ W ; 120 áàéòûã äèñêýíä áè÷íý - DEBUG-ààñ ãàðàõ Q Èíãýæ ¿¿ññýí SAMPLE.COM ïðîãðàìûã øóóä àæèëëóóëæ áîëíî. C:>SAMPLE TEST PROGRAM ¿ãèéã äýëãýöýíä áè÷èæ, ÄÎÑ-ä óäèðäëàãà øèëæèíý.
  • 60.