Ассемблер тілінде қандай да бір ережелер бар ма?
Ассемблер тілінде бірнеше ережелер бар, олар процессор- дың ішкі физикалық құрылымымен және оның жүйелік коман- даларымен байланысты. Мысалы, бір командада қолданылатын екі операндтың өлшемдері бірдей болуы керек. Соған қарамас- тан ассемблер тіліндегі ережелер саны С++ тіліндегіден аз.
Ассемблер тіліндегі программаларда кез келген шектеулерді тез айналып өтуге болады. Мысалы, C++ тілінде әртүрлі типтегі сілтемелердің мәнін бір-біріне меншіктеуге болмайды, мұндай шектеулер программада логикалық қателерді болдырмауға мүм- кіндік береді. Әдетте тәжірибелі программист мұндай шектеу- лерді айналып өтеді, бірақ нәтижесінде өте күрделі программа- лық код алынады. Мұнымен салыстырғанда ассемблер тілінде сілтемелердің типіне ешқандай шектеулер қоймайды. Мұнда сілтемелерге мән меншіктеуді толығымен программист анық-
112
Ал 128..256 комбинациясы пайдаланылған кезде үлкен бит әр уақытта 1-ге тең.
Бұл таңба анықтау үшін қолданылады. Дәл осындай прин-
цип сөздер үшін де қолданылады. Он алты битпен 65536 комби- нация құруға болады. Алғашқы 32768 комбинация оң сандарды, ал келесі 32768 комбинация (32767..65535) теріс сандарды бей- нелейді.
Emu8086 ортасында сандарды түрлендірудің және кез келген сандық өрнектерді есептеудің ыңғайлы құралдары бар. Оларды меню қатарындағы Math пунктінен көруге болады:
113
тайды. Кемшілігі, программист машиналық код деңгейінде ассе- мблерлік программаларды түзетуге көп уақыт кетіреді.
Таңбалы сандар
8 битті 256 комбинацияны құруға пайдалануға болады (нөл- мен бірге), сондықтан алғашқы 128 комбинация (0..127) оң сан- дарды, ал келесі 128 комбинация (128..256) теріс сандарды бей- нелейді.
Мысалы, бес санын алу үшін "- 5", 5 мүмкін болатын (256)
комбинациялардың санынан 5 азайтуымыз керек. Сонымен, 256
– 5 = 251 аламыз.
Теріс сандарды өрнектеуде бұл әдісті пайдаланудың белгілі бір мәні бар. Математикада егер "- 5"-ке "5"-ті қоссақ, нөл ала- мыз. Енді процессор екі байтты қосқанда да 5 және 251, сондай нәтиже аламыз. Нәтиже 255 мәнінен үлкен, сондықтан толып кеткеннен кейін процессордың мәні нөл болады.
Достарыңызбен бөлісу: |