ðåãèñòð AL. Çàòåì îíà âû÷èòàåò
ðåãèñòð AL. Çàòåì îíà âû÷èòàåò çíà÷åíèå "0" â êîäå ASCII èç
çíà÷åíèÿ äàííûõ, ÷òîáû ïîëó÷èòü öèôðîâîå çíà÷åíèå. Ýòî îçíà÷àåò,
÷òî ñèìâîë "0" äàåò çíà÷åíèå 0 â ðåãèñòðå AL, ñèìâîë "1" äàåò 1, è
ò.ä. Êîìàíäà LDS çàãðóæàåò óêàçàòåëü íóæíîé òàáëèöû â ïàðó
ðåãèñòðîâ DS:BX. Çàãðóæàÿ ýòîò óêàçàòåëü èç ÿ÷åéêè ïàìÿòè - â
Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:00:38
Ôèã. 4.6 Ïðèìåð ïåðåêîäèðîâêè Page 1-1
PAGE ,132
TITLE Ôèã. 4.6 Ïðèìåð ïåðåêîäèðîâêè
0000 CODE SEGMENT
ASSUME CS:CODE, DS:CODE
; Ýòà ïðîãðàììà ââîäèò çíà÷åíèå èç ïîðòà 040H è
; äåêîäèðóåò åãî, èñïîëüçóÿ òàáëèöó ïåðåêîäèðîâêè.
; Òàê êàê îäíà è òà æå ïðîãðàììà èñïîëüçóåòñÿ êàê äëÿ
; êîäèðîâêè, òàê è äåêîäèðîâêè, óêàçàòåëü TABLE_POINTER
; óêàçûâàåò íà ñîîòâåòñâóþùóþ òàáëèöó ïåðåêîäèðîâêè.
; Âûçûâàÿ ïîäïðîãðàììó, íåîáõîäèìî óñòàíîâèòü
; ýòîò óêàçàòåëü íà ñîîòâåòñòâóþùóþ òàáëèöó.
0000 TRANSLATE PROC NEAR ; Ïîäïðîãðàììà TRANSLATE
0000 E4 40 IN AL,040H ; Ââîä çíà÷åíèÿ èç ïîðòà
0002 2C 30 SUB AL,"0" ; Çíà÷åíèå îòíîñèòåëüíî ñèìâîëà "0",
; ò.å. îòíîñèòåëüíî íà÷àëà òàáëèöû
0004 C5 1E 000A R LDS BX,TABLE_POINTER ; (DS,BX) óêàçûâàåò íà òàáëèöó
Ñîäåðæàíèå Íàçàä Âïåðåä