"Филипп Н.Хислей. Генерация высококачественного кода для программ, написанных на СИ " - читать интересную книгу автора

a[i] = 0;
¤ Ґв ЇаЁўҐ¤Ґ­­л© ­Ё¦Ґ  бᥬЎ«Ґа­л© Є®¤ Їа®жҐбб®а  80x86. Ћ­ Ј®а §¤®
Ўлбв॥, 祬 ҐЈ®  ­ «®Ј, § ЇЁб ­­л© ў ўЁ¤Ґ жЁЄ«  Ё«Ё ­ Ў®а  Ё­бвагЄжЁ©
­ҐЇ®б।б⢥­­®© § бл«ЄЁ ў Ї ¬пвм, Ё¬Ґо饣® ᮮ⢥вбвўгойго ¤«Ё­г:
mov CX,10000
mov i,CX
sub AX,AX
mov DI,offset a
push DS
pop ES
cld
rep stosw
"ЊЁ­Ё¬Ё§ жЁп § Ј®«®ўЄ®ў ўл§®ў  дг­ЄжЁ©" ¬®¦Ґв бгйҐб⢥­­® 㬥­миЁвм
ўаҐ¬п ўлЇ®«­Ґ­Ёп ў бвагЄвгаЁа®ў ­­®© Їа®Ја ¬¬Ґ. ЏаЁ ўл§®ўҐ дг­ЄжЁЁ Ї а ¬Ґвал
ЇҐаҐ¤ овбп ўл§лў Ґ¬®© Ї®¤Їа®Ја ¬¬Ґ ў б⥪Ґ, ­ е®¤п饬бп ў ®ЇҐа вЁў­®©
Ї ¬пвЁ. Ќ Ў®а Ё­бвагЄжЁ© ­ҐЄ®в®але Їа®жҐбб®а®ў ᮤҐа¦Ёв Ё­бвагЄжЁЁ, Є®в®алҐ
Ї®¤¤Ґа¦Ёў ов Ї®вॡ­®бвЁ ‘Ё Ё ¤агЈЁе бвагЄвгаЁа®ў ­­ле п§лЄ®ў ўлб®Є®Ј®
га®ў­п ў гбв ­®ўЄҐ  ¤аҐб жЁЁ д३¬  б⥪  ЇҐаҐ¤ ўлЇ®«­Ґ­ЁҐ¬ Є®¤  дг­ЄжЁЁ Ё
ў®ббв ­®ў«Ґ­ЁЁ б⥪®ў®Ј® д३¬  ЇҐаҐ¤ § ўҐа襭ЁҐ¬.
Ќ зЁ­ п б Їа®жҐбб®а  Intel 80186, ᥬҐ©бвў® ¬ЁЄа®Їа®жҐбб®а®ў 80x86
ЇаҐ¤®бв ў«пҐв Ё­бвагЄжЁЁ ENTER Ё LEAVE ¤«п ®Ўа Ў®вЄЁ ўл§®ў®ў дг­ЄжЁ©.
Џ®«Ґ§­®бвм Ё­бвагЄжЁЁ ENTER б­Ё¦ Ґвбп, в Є Є Є ҐҐ ўлЇ®«­Ґ­ЁҐ § ­Ё¬ Ґв
Ј®а §¤® Ў®«миҐ ўаҐ¬Ґ­­ле жЁЄ«®ў Їа®жҐбб®а , 祬 ўлЇ®«­Ґ­ЁҐ
Ї®б«Ґ¤®ў вҐ«м­®бвЁ Є®¬ ­¤, ®бгйҐбвў«пойЁе § бл«Єг ў б⥪ Ў §®ў®Ј® гЄ § вҐ«п
Ё ўлзЁв ­ЁҐ ­Ґ®Ўе®¤Ё¬®Ј® Є®«ЁзҐбвў  Ў ©в ¤«п д३¬  Ё§ гЄ § вҐ«п б⥪ .
Ђ«мвҐа­ вЁў®© ЁбЇ®«м§®ў ­Ёо б⥪  ¤«п ЇҐаҐ¤ зЁ Ї а ¬Ґва®ў дг­ЄжЁЁ
пў«пҐвбп § ¤ ­ЁҐ Є®а४⭮ ®ЇаҐ¤Ґ«Ґ­­®Ј® Їа®в®Є®«  ¤«п ЇҐаҐ¤ зЁ бв®«мЄЁе
Ї а ¬Ґва®ў, бЄ®«мЄ® ў®§¬®¦­®, ў ॣЁбва е. …б«Ё ¤®бвгЇ­® ¤®бв в®з­®Ґ
Є®«ЁзҐбвў® ॣЁбва®ў зв®Ўл ЇҐаҐ¤ вм ўбҐ Ї а ¬Ґвал дг­ЄжЁЁ, Ё ўл§лў Ґ¬ п
дг­ЄжЁп ­Ґ ЁбЇ®«м§гҐв «®Є «м­лҐ ЇҐаҐ¬Ґ­­лҐ, в® ®вЇ ¤ Ґв ­Ґ®Ўе®¤Ё¬®бвм
ЈҐ­Ґа жЁЁ Є®¤  ¤«п Їа®«®Ј  Ё нЇЁ«®Ј  дг­ЄжЁЁ (®­Ё ®Ўлз­® ­г¦­л ¤«п гбв ­®ўЄЁ
 ¤аҐб жЁЁ д३¬  б⥪ ). Љ®¬ЇЁ«пв®а WATCOM C 6.0 ЁбЇ®«м§гҐв нв®в Ї®¤е®¤ (б¬.
аЁб. 5). ‘гйҐб⢥­­®Ґ ЇаЁа йҐ­ЁҐ бЄ®а®бвЁ Ї®«гз Ґвбп Ї®в®¬г, зв® ­Ґ в®«мЄ®
г¤ «повбп Ё­бвагЄжЁЁ, ­® Ё Ї®в®¬г, зв® Ї а ¬Ґвал 㦥 ॣЁбва®ўлҐ Ё ¬®Јгв
®Ўа Ў влў вмбп Ў®«ҐҐ нд䥪⨢­®.
--------------------------------
|ђ€‘“ЌЋЉ 5: ‘в஥­ЁҐ § Ј®«®ўЄ  ўл§®ў  дг­ЄжЁЁ |
+-------------------------------+
|€б室­л© ⥪бв ­  ‘Ё MICROSOFT WATCOM |
|(x)-ўаҐ¬. жЁЄ«л C 5.0 C 6.0 |
+-------------------------------+
|/*’Ґб⠢맮ў  funcall funcall |
| дг­ЄжЁЁ */ push bp push DX |
|int funcall() mov BP,SP xor DX,DX |
|{ sub SP,2 L4 mov AX,DX "- |
| int i; push SI call dummy | |
| sub SI,SI inc DX (23)|
| for(i=0;i"20000;i++) $L20008: cmp DX,2000 | |
| { dummy(i); } ; push SI "- jl L4 "- |
|} call dummy | pop DX |