Assembler äëÿ íà÷èíàþùèõ


         

Âû÷èñëåíèå àäðåñà ðàñïîëîæåíèÿ òðåáóåìîé çàïèñè


              0018      72 06                   JB   READ_WRITE ; Îáðàáàòûâàþòñÿ òîëüêî êîìàíäó ÷òåíèÿ è
                                                             ;  çàïèñè
              001A                        OK_RETURN:
              001A      B4 00                   MOV  AH, 0            ; Êîä âîçâðàòà - 0
              001C      F8                      CLC              ; Ñáðîñ C-ôëàãà - íåò îøèáêè
              001D      CA 0002                  RET  2
              0020                        READ_WRITE:
              0020      53                      PUSH BX         ; Ñîõðàíåíèå ðåãèñòðîâ
              0021      51                      PUSH CX
              0022      52                      PUSH DX
              0023      56                      PUSH SI
              0024      57                      PUSH DI
              0025      1E                      PUSH DS
              0026      06                      PUSH ES
 
                     Ôèã. 10.2 ïðîãðàììà ñîçäàíèÿ ïñåâäî-äèñêà (ïðîäîëæåíèå)
                                     ;-----  Âû÷èñëåíèå àäðåñà ðàñïîëîæåíèÿ òðåáóåìîé çàïèñè â ïñåâäî-äèñêå
 
              0027      50                      PUSH AX         ; Ñîõðàíåíèå êîäà òðåáóåìîé îïåðàöèè
              0028      B0 08                   MOV  AL, 8            ; ×èñëî ñåêòîðîâ íà òðåêå
              002A      F6 E5                   MUL  CH
              002C      B5 00                   MOV  CH, 0
              002E      03 C1                   ADD  AX, CX      ; Ïðèáàâëåíèå íîìåðà ñåêòîðà
              0030      80 FE 00                CMP  DH, 0            ; Ïðîâåðêà íà íîìåðà ñòîðîíû
              0033      74 03                   JE   HEAD_0
              0035      05 0140                  ADD  AX, 320    ; Ïåðåêëþ÷åíèå íà âòîðîþ ñòîðîíó
              0038                        HEAD_0:
              0038      48                      DEC  AX
              0039      3D 0140                  CMP  AX, DISK_SIZE    ; Âû÷èñëåííîå çíà÷åíèå ïðàâèëüíî?

Ñîäåðæàíèå  Íàçàä  Âïåðåä