Càìîó÷èòåëü ïî Assembler
Ñïðàâî÷íàÿ ñèñòåìà ïî ÿçûêó Assembler
Ñëîæåíèå
Êîìàíäà ADD âûïîëíÿåò ñëîæåíèå óêàçàííûõ
îïåðàíäîâ, ïðåäñòàâëåííûõ
â äâîè÷íîì äîïîëíèòåëüíîì êîäå. Ìèêðîïðîöåññîð ïîìåùàåò ðåçóëüòàò
íà ìåñòî ïåðâîãî îïåðàíäà ïîñëå òîãî, êàê
ñëîæèò îáà îïåðàíäà.
Âòîðîé îïåðàíä íå èçìåíÿåòñÿ. Êîìàíäà êîððåêòèðóåò ðåãèñòð ôëàãîâ
â ñîîòâåòñòâèè ñ ðåçóëüòàòîì
ñëîæåíèÿ. Íàïðèìåð, êîìàíäà
ADD AX,BX
ñêëàäûâàåò ñîäåðæèìîå ðåãèñòðà BX ñ
ñîäåðæèìûì ðåãèñòðà AX, è
îñòàâëÿåò ðåçóëüòàò â ðåãèñòðå AX. Ðåãèñòð ôëàãîâ ñîîáùàåò î òîì,
áûë ëè ðåçóëüòàò íóëåâûì, îòðèöàòåëüíûì,
èìåë ëè ÷åòíîñòü, ïåðåíîñ
èëè ïåðåïîëíåíèå.
Ôèã. 4.8 êðàòêî èëëþñòðèðóåò âàðèàíòû
êîìàíäû ADD.
Ñóùåñòâóþò äâå ôîðìû ñëîæåíèÿ, 8=áèòîâîå è
16=áèòîâîå.  ðàçëè÷íûõ
ôîðìàõ ñëîæåíèÿ ïðèíèìàþò ó÷àñòèå
ðàçëè÷íûå ðåãèñòðû. Àññåìáëåð
ñëåäèò çà òåì, ÷òîáû îïåðàíäû
ñîîòâåòñòâîâàëè äðóã äðóãó.
Ñîäåðæèìîå áàéòîâîãî ðåãèñòðà (íàïðèìåð,
CH) íå ìîæåò áûòü
ïðèáàâëåíî ê ÿ÷åéêå ïàìÿòè, êîòîðàÿ íå
èìååò òèï BYTE. Åñëè ÿ÷åéêà
ïàìÿòè ÿâëÿåòñÿ îäíèì èç îïåðàíäîâ, îíà
ìîæåò áûòü ëèáî
îïåðàíäîì=ðåçóëüòàòîì, ëèáî íåèçìåíÿåìûì
îïåðàíäîì. Òåì ñàìûì
êîìàíäà ìîæåò ïðèáàâèòü ñîäåðæèìîå
ðåãèñòðà ê ÿ÷åéêå ïàìÿòè è
âîçâðàòèòü ðåçóëüòàò â ïàìÿòü. Îäíèì èç
îïåðàíäîâ ìîæåò òàêæå áûòü
íåïîñðåäñòâåííîå çíà÷åíèå. Íà Ôèã. 4.9
ïîêàçàí ëèñòèíã àññåìáëåðà ñ
íàêîòîðûìè àðèôìåòè÷åñêèìè êîìàíäàìè.
Êîìàíäà ñëîæåíèÿ ñ ïåðåíîñîì ADC - ýòî òà
æå êîìàíäà ADD, çà
èñêëþ÷åíèåì òîãî, ÷òî â ñóììó âêëþ÷àåòñÿ
ôëàã ïåðåíîñà. Äëÿ ëþáîé
ôîðìû êîìàíäû ADD ñóùåñòâóåò ñðàâíèìàÿ ñ
íåé êîìàíäà ADC.
ÚÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄ¿
³
AX ³ ³ AX ³ ³
AX ³
³
BX ³ ³ BX ³ ³
BX ³
³
CX ³ ³ CX ³ ÄÄÄÄÄÄÄ> ³
CX ³
³
DX ³ ³ DX ³ ³
DX ³
ÀÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄ¿ + ÚÄÄÄÄÄÄÄÄ¿
ÚÄÄÄÄÄÄÄÄ¿
³
SI ³ ³ SI ³ ³
SI ³
³
DI ³
³ DI ³
³ DI ³
³
BP ³ ³ BP ³ ÄÄÄÄÄÄÄ> ³
BP ³
³
SP ³ ³ SP ³ ³
SP ³
ÀÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄ¿
³ Ïàìÿòü ³
³(ñëîâà) ³
ÀÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄ¿
³Íåïîñðåä-³
³ñòâåííûé ³
ÀÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿
³
AH ³ ³ AH ³ ³
AH ³
³
AL ³ ³ AL ³ ³
AL ³
³
BH ³ ³ BH ³ ³
BH ³
³
BL ³ ³ BL ³ ³
BL ³
³
CH ³ ³ CH ³ ³
CH ³
³
CL ³
+ ³ CL ³ ³
CL ³
³
DH ³ ³ DH ³ ³
DH ³
³
DL ³ ³ DL ³ ³
DL ³
ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿
³ Ïàìÿòü ³ ÄÄÄÄÄÄÄ>
³ Ïàìÿòü ³
³(ñëîâà) ³ ³(ñëîâà) ³
ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄ¿
³Íåïîñðåä-³
³ñòâåííûé ³
ÀÄÄÄÄÄÄÄÄÄÙ
Ôèã. 4.8 Îïåðàöèè ñëîæåíèÿ
Îáå êîìàíäû ñëîæåíèÿ, êàê ADD, òàê è ADC,
óñòàíàâëèâàþò ðàâíûì
1 ôëàã ïåðåíîñà, åñëè ïðîèçîøåë ïåðåíîñ èç
ñòàðøåãî ðàçðÿäà
ðåçóëüòàòà. Êîìàíäà ADD ñêëàäûâàåò äâà
îïåðàíäà, íå îáðàùàÿ
âíèìàíèÿ íà ôëàã ïåðåíîñà, à êîìàíäà ADC
ó÷èòûâàåò è ôëàã ïåðåíîñà.
Åñëè ôëàã ïåðåíîñà ðàâåí 0, ðåçóëüòàò
ðàâåí ðåçóëüòàòó âûïîëíåíèÿ
êîìàíäû ADD. Åñëè æå ôëàã ïåðåíîñà ðàâåí
1, òî ðåçóëüòàò íà 1
áîëüøå ðåçóëüòàòà êîìàíäû ADD. Òàêèì
îáðàçîì, ïðîãðàììà ìîæåò
èñïîëüçîâàòü ôëàã ïåðåíîñà äëÿ îïåðàöèé
ïîâûøåííîé òî÷íîñòè.
Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:00:49
Ôèã. 4.9 Àðèôìåòè÷åñêèå êîìàíäû Page 1-1
PAGE
,132
TITLE
Ôèã. 4.9 Àðèôìåòè÷åñêèå êîìàíäû
0000 CODE
SEGMENT
ASSUME
CS:CODE,DS:CODE
0000 EXBYTE
LABEL BYTE
0000 EXWORD
LABEL WORD
0000 03 1E 0000 R
ADD BX,EXWORD ;
BX <- BX + [EXWORD]
0004 29 0E 0000 R
SUB EXWORD,CX ;
[EXWORD] <- [EXWORD] - CX
0008 12 3E 0000 R
ADC BH,EXBYTE ;
BH <- BH + [EXBYTE] + Carry
000C 18 0E 0000 R
SBB EXBYTE,CL ;
[EXBYTE] <- [EXBYTE] - CL - Carry
0010 F7 1E 0000 R
NEG EXWORD
; [EXWORD] <- -[EXWORD]
0014 FE 06 0000 R
INC EXBYTE
; [EXBYTE] <- [EXBYTE] + 1
0018 4E
DEC SI ;
SI <- SI - 1
0019 81 C7 00C8 ADD DI,200
; DI <- DI + 200
001D 83 EC 64 SUB SP,100
; SP <- SP - 100
0020 83 D1 0A ADC CX,10
; CX <- CX + 10 + Carry
0023 83 1E 0000 R 14
SBB EXWORD,20 ;
[EXWORD] <- [EXWORD] - 20 - Carry
0028 3B C3 CMP AX,BX
; Óñòàíîâêà ôëàãîâ ïî AX - BX
002A 81 FE 01F4 CMP SI,500
; Óñòàíîâêà ôëàãîâ ïî SI - 500
002E F6 26 0000 R
MUL EXBYTE
; AX <- AL * [EXBYTE]
0032 F7 EB IMUL BX ;
DX:AX <- AX * BX
0034 F7 36 0000 R
DIV EXWORD
; AX <- DX:AX / [EXWORD]
0038 F6 FD IDIV CH ;
AL <- AX / CH
003A 27 DAA
; Äåñÿòè÷íîå êîððåêöèÿ äëÿ ñëîæåíèÿ
003B 2F DAS
; Äåñÿòè÷íîå êîððåêöèÿ äëÿ âû÷èòàíèÿ
003C 37 AAA
; ASCII êîððåêöèÿ äëÿ ñëîæåíèÿ
003D 3F AAS
; ASCII êîððåêöèÿ äëÿ âû÷èòàíèÿ
003E D4 0A AAM ; ASCII êîððåêöèÿ äëÿ óìíîæåíèÿ
0040 D5 0A AAD ; ASCII êîððåêöèÿ äëÿ äåëåíèÿ
0042 98 CBW
; AX <- ðàñøèðåííîå ïî çíàêó AL
0043 99 CWD
; DX:AX <- ðàñøèðåííîå ïî çíàêó AX
0044 CODE
ENDS
END
Ôèã. 4.9 Àðèôìåòè÷åñêèå êîìàíäû
Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:00:54
Ôèã. 4.10 Ïðèìåð âû÷èñëåíèé ñ ïîâûøåííîé òî÷íîñòüþ
Page 1-1
PAGE
,132
TITLE
Ôèã. 4.10 Ïðèìåð âû÷èñëåíèé ñ ïîâûøåííîé òî÷íîñòüþ
0000 CODE
SEGMENT
ASSUME
CS:CODE,DS:CODE
0000 ????????
VALUE1 DD ? ; Îáëàñòü äàííûõ ðàçìåðîì 32 ðàçðÿäà
0004 ????????
VALUE2 DD ?
;-----
Ñëîæåíèå äâóõ 32-ðàçðÿäíûõ ÷èñåë
0008 A1 0000 R MOV AX,WORD PTR
VALUE1
000B 01 06 0004 R
ADD WORD PTR VALUE2,AX ; Ñëîæåíèå ìëàäøèõ 16 ðàçðÿäîâ
000F A1 0002 R MOV AX,WORD PTR
VALUE1+2
0012 11 06 0006 R
ADC WORD PTR VALUE2+2,AX ; Ñëîæåíèå ñòàðøèõ 16 ðàçðÿäîâ
;-----
Âû÷èòàíèå äâóõ 32-ðàçðÿäíûõ ÷èñåë
0016 A1 0000 R MOV AX,WORD PTR
VALUE1
0019 29 06 0004 R
SUB WORD PTR VALUE2,AX ; Âû÷èòàíèå ìëàäøåé ÷àñòè
001D A1 0002 R MOV AX,WORD PTR
VALUE1+2
0020 19 06 0006 R SBB
WORD PTR VALUE2+2,AX ;
Âû÷èòàíèå ñòàðøåé ÷àñòè
0024 CODE
ENDS
END
Ôèã. 4.10 Ïðèìåð ñ ïîâûøåííîé òî÷íîñòüþ
Ôèã. 4.10 èëëþñòðèðóåò ñëîæåíèå ïàðû
32=áèòîâûõ ÷èñåë; â
ïðèìåðå ñêëàäûâàþòñÿ 32=áèòîâûå ÷èñëà ïîëÿ
VALUE1 è ïîëÿ VALUE2, à
ðåçóëüòàò ïîìåùàåòñÿ â ïîëå VALUE2.
Çàìåòèì, ÷òî îäèí èç îïåðàíäîâ
äîëæåí áûòü ïîìåùåí â ðåãèñòð. Â ïåðâîì
ñëîæåíèè èñïîëüçóåñÿ
êîìàíäà ADD, òàê êàê òåêóùåå çíà÷åíèå
ôëàãà ïåðåíîñà íåñóùåñòâåííî
äëÿ ïåðâîãî ñëîæåíèÿ. Ïîñëå
ñîîòâåòñòâóþùåãî ðàçìåùåíèÿ îïåðàíäîâ
ïðîãðàììà íà Ôèã. 4.10 âûïîëíÿåò âòîðîå
ñëîæåíèå ñ ïîìîùüþ êîìàíäû
ADC, ñ ó÷åòîì ôëàãà ïåðåíîñà,
óñòàíîâëåííîãî ïðåäûäóùèì ñëîæåíèåì.
Ýòî òàêæå õîðîøèé ïðèìåð ïîêàçûâàþùèé,
ïî÷åìó êîìàíäà MOV íå
óñòàíàâëèâàåò íèêàêèõ ôëàãîâ. Åñëè áû
êîìàíäà MOV èçìåíÿëà ôëàãè,
âûïîëíèòü ïðàâèëüíî âòîðîå ñëîæåíèå áûëî
áû ãîðàçäî òðóäíåå.
Ñîäåðæàíèå
Forekc.ru
Ðåôåðàòû, äèïëîìû, êóðñîâûå, âûïóñêíûå è êâàëèôèêàöèîííûå ðàáîòû, äèññåðòàöèè, ó÷åáíèêè, ó÷åáíûå ïîñîáèÿ, ëåêöèè, ìåòîäè÷åñêèå ïîñîáèÿ è ðåêîìåíäàöèè, ïðîãðàììû è êóðñû îáó÷åíèÿ, ïóáëèêàöèè èç ïðîôèëüíûõ èçäàíèé
Ñïðàâî÷íàÿ ñèñòåìà ïî ÿçûêó Assembler
Ñëîæåíèå
Êîìàíäà ADD âûïîëíÿåò ñëîæåíèå óêàçàííûõ îïåðàíäîâ, ïðåäñòàâëåííûõ
â äâîè÷íîì äîïîëíèòåëüíîì êîäå. Ìèêðîïðîöåññîð ïîìåùàåò ðåçóëüòàò
íà ìåñòî ïåðâîãî îïåðàíäà ïîñëå òîãî, êàê ñëîæèò îáà îïåðàíäà.
Âòîðîé îïåðàíä íå èçìåíÿåòñÿ. Êîìàíäà êîððåêòèðóåò ðåãèñòð ôëàãîâ
â ñîîòâåòñòâèè ñ ðåçóëüòàòîì ñëîæåíèÿ. Íàïðèìåð, êîìàíäà
ADD AX,BX
ñêëàäûâàåò ñîäåðæèìîå ðåãèñòðà BX ñ ñîäåðæèìûì ðåãèñòðà AX, è
îñòàâëÿåò ðåçóëüòàò â ðåãèñòðå AX. Ðåãèñòð ôëàãîâ ñîîáùàåò î òîì,
áûë ëè ðåçóëüòàò íóëåâûì, îòðèöàòåëüíûì, èìåë ëè ÷åòíîñòü, ïåðåíîñ
èëè ïåðåïîëíåíèå.
Ôèã. 4.8 êðàòêî èëëþñòðèðóåò âàðèàíòû êîìàíäû ADD.
Ñóùåñòâóþò äâå ôîðìû ñëîæåíèÿ, 8=áèòîâîå è 16=áèòîâîå.  ðàçëè÷íûõ
ôîðìàõ ñëîæåíèÿ ïðèíèìàþò ó÷àñòèå ðàçëè÷íûå ðåãèñòðû. Àññåìáëåð
ñëåäèò çà òåì, ÷òîáû îïåðàíäû ñîîòâåòñòâîâàëè äðóã äðóãó.
Ñîäåðæèìîå áàéòîâîãî ðåãèñòðà (íàïðèìåð, CH) íå ìîæåò áûòü
ïðèáàâëåíî ê ÿ÷åéêå ïàìÿòè, êîòîðàÿ íå èìååò òèï BYTE. Åñëè ÿ÷åéêà
ïàìÿòè ÿâëÿåòñÿ îäíèì èç îïåðàíäîâ, îíà ìîæåò áûòü ëèáî
îïåðàíäîì=ðåçóëüòàòîì, ëèáî íåèçìåíÿåìûì îïåðàíäîì. Òåì ñàìûì
êîìàíäà ìîæåò ïðèáàâèòü ñîäåðæèìîå ðåãèñòðà ê ÿ÷åéêå ïàìÿòè è
âîçâðàòèòü ðåçóëüòàò â ïàìÿòü. Îäíèì èç îïåðàíäîâ ìîæåò òàêæå áûòü
íåïîñðåäñòâåííîå çíà÷åíèå. Íà Ôèã. 4.9 ïîêàçàí ëèñòèíã àññåìáëåðà ñ
íàêîòîðûìè àðèôìåòè÷åñêèìè êîìàíäàìè.
Êîìàíäà ñëîæåíèÿ ñ ïåðåíîñîì ADC - ýòî òà æå êîìàíäà ADD, çà
èñêëþ÷åíèåì òîãî, ÷òî â ñóììó âêëþ÷àåòñÿ ôëàã ïåðåíîñà. Äëÿ ëþáîé
ôîðìû êîìàíäû ADD ñóùåñòâóåò ñðàâíèìàÿ ñ íåé êîìàíäà ADC.
ÚÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄ¿
³ AX ³ ³ AX ³ ³ AX ³
³ BX ³ ³ BX ³ ³ BX ³
³ CX ³ ³ CX ³ ÄÄÄÄÄÄÄ> ³ CX ³
³ DX ³ ³ DX ³ ³ DX ³
ÀÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄ¿ + ÚÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄ¿
³ SI ³ ³ SI ³ ³ SI ³
³ DI ³ ³ DI ³ ³ DI ³
³ BP ³ ³ BP ³ ÄÄÄÄÄÄÄ> ³ BP ³
³ SP ³ ³ SP ³ ³ SP ³
ÀÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄ¿
³ Ïàìÿòü ³
³(ñëîâà) ³
ÀÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄ¿
³Íåïîñðåä-³
³ñòâåííûé ³
ÀÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿
³ AH ³ ³ AH ³ ³ AH ³
³ AL ³ ³ AL ³ ³ AL ³
³ BH ³ ³ BH ³ ³ BH ³
³ BL ³ ³ BL ³ ³ BL ³
³ CH ³ ³ CH ³ ³ CH ³
³ CL ³ + ³ CL ³ ³ CL ³
³ DH ³ ³ DH ³ ³ DH ³
³ DL ³ ³ DL ³ ³ DL ³
ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿
³ Ïàìÿòü ³ ÄÄÄÄÄÄÄ> ³ Ïàìÿòü ³
³(ñëîâà) ³ ³(ñëîâà) ³
ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄ¿
³Íåïîñðåä-³
³ñòâåííûé ³
ÀÄÄÄÄÄÄÄÄÄÙ
Ôèã. 4.8 Îïåðàöèè ñëîæåíèÿ
Îáå êîìàíäû ñëîæåíèÿ, êàê ADD, òàê è ADC, óñòàíàâëèâàþò ðàâíûì
1 ôëàã ïåðåíîñà, åñëè ïðîèçîøåë ïåðåíîñ èç ñòàðøåãî ðàçðÿäà
ðåçóëüòàòà. Êîìàíäà ADD ñêëàäûâàåò äâà îïåðàíäà, íå îáðàùàÿ
âíèìàíèÿ íà ôëàã ïåðåíîñà, à êîìàíäà ADC ó÷èòûâàåò è ôëàã ïåðåíîñà.
Åñëè ôëàã ïåðåíîñà ðàâåí 0, ðåçóëüòàò ðàâåí ðåçóëüòàòó âûïîëíåíèÿ
êîìàíäû ADD. Åñëè æå ôëàã ïåðåíîñà ðàâåí 1, òî ðåçóëüòàò íà 1
áîëüøå ðåçóëüòàòà êîìàíäû ADD. Òàêèì îáðàçîì, ïðîãðàììà ìîæåò
èñïîëüçîâàòü ôëàã ïåðåíîñà äëÿ îïåðàöèé ïîâûøåííîé òî÷íîñòè.
Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:00:49
Ôèã. 4.9 Àðèôìåòè÷åñêèå êîìàíäû Page 1-1
PAGE ,132
TITLE Ôèã. 4.9 Àðèôìåòè÷åñêèå êîìàíäû
0000 CODE SEGMENT
ASSUME CS:CODE,DS:CODE
0000 EXBYTE LABEL BYTE
0000 EXWORD LABEL WORD
0000 03 1E 0000 R ADD BX,EXWORD ; BX <- BX + [EXWORD]
0004 29 0E 0000 R SUB EXWORD,CX ; [EXWORD] <- [EXWORD] - CX
0008 12 3E 0000 R ADC BH,EXBYTE ; BH <- BH + [EXBYTE] + Carry
000C 18 0E 0000 R SBB EXBYTE,CL ; [EXBYTE] <- [EXBYTE] - CL - Carry
0010 F7 1E 0000 R NEG EXWORD ; [EXWORD] <- -[EXWORD]
0014 FE 06 0000 R INC EXBYTE ; [EXBYTE] <- [EXBYTE] + 1
0018 4E DEC SI ; SI <- SI - 1
0019 81 C7 00C8 ADD DI,200 ; DI <- DI + 200
001D 83 EC 64 SUB SP,100 ; SP <- SP - 100
0020 83 D1 0A ADC CX,10 ; CX <- CX + 10 + Carry
0023 83 1E 0000 R 14 SBB EXWORD,20 ; [EXWORD] <- [EXWORD] - 20 - Carry
0028 3B C3 CMP AX,BX ; Óñòàíîâêà ôëàãîâ ïî AX - BX
002A 81 FE 01F4 CMP SI,500 ; Óñòàíîâêà ôëàãîâ ïî SI - 500
002E F6 26 0000 R MUL EXBYTE ; AX <- AL * [EXBYTE]
0032 F7 EB IMUL BX ; DX:AX <- AX * BX
0034 F7 36 0000 R DIV EXWORD ; AX <- DX:AX / [EXWORD]
0038 F6 FD IDIV CH ; AL <- AX / CH
003A 27 DAA ; Äåñÿòè÷íîå êîððåêöèÿ äëÿ ñëîæåíèÿ
003B 2F DAS ; Äåñÿòè÷íîå êîððåêöèÿ äëÿ âû÷èòàíèÿ
003C 37 AAA ; ASCII êîððåêöèÿ äëÿ ñëîæåíèÿ
003D 3F AAS ; ASCII êîððåêöèÿ äëÿ âû÷èòàíèÿ
003E D4 0A AAM ; ASCII êîððåêöèÿ äëÿ óìíîæåíèÿ
0040 D5 0A AAD ; ASCII êîððåêöèÿ äëÿ äåëåíèÿ
0042 98 CBW ; AX <- ðàñøèðåííîå ïî çíàêó AL
0043 99 CWD ; DX:AX <- ðàñøèðåííîå ïî çíàêó AX
0044 CODE ENDS
END
Ôèã. 4.9 Àðèôìåòè÷åñêèå êîìàíäû
Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:00:54
Ôèã. 4.10 Ïðèìåð âû÷èñëåíèé ñ ïîâûøåííîé òî÷íîñòüþ Page 1-1
PAGE ,132
TITLE Ôèã. 4.10 Ïðèìåð âû÷èñëåíèé ñ ïîâûøåííîé òî÷íîñòüþ
0000 CODE SEGMENT
ASSUME CS:CODE,DS:CODE
0000 ???????? VALUE1 DD ? ; Îáëàñòü äàííûõ ðàçìåðîì 32 ðàçðÿäà
0004 ???????? VALUE2 DD ?
;----- Ñëîæåíèå äâóõ 32-ðàçðÿäíûõ ÷èñåë
0008 A1 0000 R MOV AX,WORD PTR VALUE1
000B 01 06 0004 R ADD WORD PTR VALUE2,AX ; Ñëîæåíèå ìëàäøèõ 16 ðàçðÿäîâ
000F A1 0002 R MOV AX,WORD PTR VALUE1+2
0012 11 06 0006 R ADC WORD PTR VALUE2+2,AX ; Ñëîæåíèå ñòàðøèõ 16 ðàçðÿäîâ
;----- Âû÷èòàíèå äâóõ 32-ðàçðÿäíûõ ÷èñåë
0016 A1 0000 R MOV AX,WORD PTR VALUE1
0019 29 06 0004 R SUB WORD PTR VALUE2,AX ; Âû÷èòàíèå ìëàäøåé ÷àñòè
001D A1 0002 R MOV AX,WORD PTR VALUE1+2
0020 19 06 0006 R SBB WORD PTR VALUE2+2,AX ; Âû÷èòàíèå ñòàðøåé ÷àñòè
0024 CODE ENDS
END
Ôèã. 4.10 Ïðèìåð ñ ïîâûøåííîé òî÷íîñòüþ
Ôèã. 4.10 èëëþñòðèðóåò ñëîæåíèå ïàðû 32=áèòîâûõ ÷èñåë; â
ïðèìåðå ñêëàäûâàþòñÿ 32=áèòîâûå ÷èñëà ïîëÿ VALUE1 è ïîëÿ VALUE2, à
ðåçóëüòàò ïîìåùàåòñÿ â ïîëå VALUE2. Çàìåòèì, ÷òî îäèí èç îïåðàíäîâ
äîëæåí áûòü ïîìåùåí â ðåãèñòð. Â ïåðâîì ñëîæåíèè èñïîëüçóåñÿ
êîìàíäà ADD, òàê êàê òåêóùåå çíà÷åíèå ôëàãà ïåðåíîñà íåñóùåñòâåííî
äëÿ ïåðâîãî ñëîæåíèÿ. Ïîñëå ñîîòâåòñòâóþùåãî ðàçìåùåíèÿ îïåðàíäîâ
ïðîãðàììà íà Ôèã. 4.10 âûïîëíÿåò âòîðîå ñëîæåíèå ñ ïîìîùüþ êîìàíäû
ADC, ñ ó÷åòîì ôëàãà ïåðåíîñà, óñòàíîâëåííîãî ïðåäûäóùèì ñëîæåíèåì.
Ýòî òàêæå õîðîøèé ïðèìåð ïîêàçûâàþùèé, ïî÷åìó êîìàíäà MOV íå
óñòàíàâëèâàåò íèêàêèõ ôëàãîâ. Åñëè áû êîìàíäà MOV èçìåíÿëà ôëàãè,
âûïîëíèòü ïðàâèëüíî âòîðîå ñëîæåíèå áûëî áû ãîðàçäî òðóäíåå.
Ñîäåðæàíèå
Forekc.ru
Ðåôåðàòû, äèïëîìû, êóðñîâûå, âûïóñêíûå è êâàëèôèêàöèîííûå ðàáîòû, äèññåðòàöèè, ó÷åáíèêè, ó÷åáíûå ïîñîáèÿ, ëåêöèè, ìåòîäè÷åñêèå ïîñîáèÿ è ðåêîìåíäàöèè, ïðîãðàììû è êóðñû îáó÷åíèÿ, ïóáëèêàöèè èç ïðîôèëüíûõ èçäàíèé