Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ауызша сурактар.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
253.2 Кб
Скачать

2.Биттермен жұмыс жасау командаларының қолдануын кодпен түсіндіріңіз. Ассемблерде Windows үшін бағдарламалау қалай орындалады.

Операндылардың жеке биттерімен логикалық операцияларды және жылжытуларды пайдалану арқылы жұмыс жасауға болады. Бірақ, бұлардан басқа х86 командалар жүйесінде биттермен жұмыс жасау үшін арнайы командалар бар: олар биттерді көшіру және биттерді тексеру командалары. Олар алғаш рет і386 процессорлерінде пайда болған.

Биттерді көшіру командасы. Биттерді көшіру BSF және BSR командаларымен орындалады. Бұл командалар бір-біріне өте ұсаса. Оларда 2 операнд болады. Бірінші операнд 16 биттік болу керек, оған шешім жазылады. Екінші операнд 16 биттік регистр немесе жадтағы сөз болуы қажет, бұл өңделетін мән болып табылады.

BSF командасы екінші операндтың биттерін кішісінен үлкеніне қарай қарастырады, және бірінші бірлік биттің индексін регистрге орналастырады. Биттер нөлден бастап нөмірленеді. Егер бірлік бит табылса, онда нөлдік жалаша тасталады (ZF=0). Егер барлық биттер нөлдік юолса, онда нөлдік жалауша қабылданады (ZF=1), ал бірінші операнд мәні анықталмаған болады.

mov ax,01011000b ;AX=58h

bsf bx,ax ;BX=3, ZF=0

xor ax,ax ;AX=0

bsf bx,ax ;BX=?, ZF=1

BSR дің айырмашылығы, ол биттерді үлкеннен кішісіне қарай қарастырады. Ал қалғандары сол қалпында қалады.

mov ax,01011000b ;AX=58h

bsr bx,ax ;BX=6, ZF=0

xor ax,ax ;AX=0

bsr bx,ax ;BX=?, ZF=1

Биттерді тексеру және модификациялау командалары.

ВТ командасы тексерілген биттің мәнін СҒ жалаушасына көшіреді. Бұдан кейін JC және JNC арқылы шартты тексерулер жүргізуге болады. Командада екі операнд болады: регистрдегі немесе жадыдағы сөз және биттің нөмірі, ол нөмір регистрде болуы мүмкін. Команданы пайдалану мысалы:

bt ax,0 ;Проверка младшего бита AX

jc m1 ;Переход, если бит равен 1

mov cx,3 ;CX=3

bt ax,cx ;Проверка 3-го бита AX

jnc m1 ;Переход, если бит равен 0

Ассемблерде Windows үшін бағдарламалау қалай орындалады.

MS Windows-та программаны дайындау және жөндеу процессі келесі этаптардан тұрады:

Программа тексті кез – келген текстік редектор арқылы дайындалады. Орындалатын текстегі файл кеңейтілуі .ASM түрінде болуы міндетті;

Программа трансляциясы MASM.EXE ассемблерінің көмегімен, объектілік файл алу үшін орындалады;

Объектілік модулдің компоновкасы LІNK. EXE компоновщигі арқылы, жүктемеленетін (орындалатын) файл алу үшін орындалады;

Дайын программаның орындалуы CodeVіew (CV.EXE файлы) интерактивті жөндегіш арқылы орындалады.

Егер орындалатын текстегі файл программасынң аты P/ASM деп аталған болса, онда ассемблерді шақыру жолы келесідегідей түрде болады:

MASM /Z /ZІ /N P, P, P;

/Z кілті программаның орындалатын текстіндегі, ассемблер тапқан қателерді экранға шығаруға рұқсат береді (бұл кілтсіз қателерді табуды трансляция листингі бойынша орындауға тура

келер еді).

/ZІ кілті обьектілік файлға программаның орындалуы кезінде сұралмайтын, CodeVіew үндегішімен қолданылмайтын орындалатын программа жолдарын және басқа ақпараттарды

қосуды орындайды.

/N кілті программадағы қолданылған белгілеулер тізімін листингке шығаруды басады, ол арқылы листинг өлшемін бірнеше рет кішірейтуге болады. Одан кейін орналасқан параметрлер модул аттарын береді:

(P.ASM) орындалатын, (P. OBJ) обьектілік жне (P.LST) листинг файлдары. Ал нүктелі үтір қиылысқан сілтемелерді, яғни P.CRF файлын қалыптастыруды болдырмау үшін пайдаланылады.

Компоновщикті шақыру жолы келесідегідей түрде болады:

LІNK /CO P, P;

/CO кілті орындалатын файлдағы CV жөндеуішінде орындалатын программаның толық текстін экранға шығару үшін символдық ақпараттарды береді, оғ ан таңбалар, коментарилер және т.б. жатады.