ПредишенСледващото

Регистрите са специални памет. Това е най-важното нещо. Всички им чар, който се хареса на регистъра е много по-бързо, отколкото на компютър RAM. Именно поради тази причина, регистри се използват за командите на процесора. От там, процесора удобно и бързо получаване на информация. Говорейки о PC процесор тип 286. И ние сме точно такъв процесор и като се има предвид размера на регистъра за 16-битов. Всеки регистър има име и цел. Те се предлагат в следните видове.

общо предназначение регистрира AX, BX, CX, DX, BP, SI, DI, SPcegmentnye регистрира CS, DS, SS, ESschetchik екипи IPregistr знамена Знамена

Всяко име регистър носи някакъв смисъл

А акумулаторна батерия B база рамка С брояч брояч данни D данни BP база показалка индекс източник Pointer Base SI Индекс източник DI индекс дестинация приемник SP стека индекс показалеца показалеца стека CS код сегмент сегмент команди DS сегмент данни сегмент данни SS стека сегмент стека сегмент ES допълнително сегмент наслагване IP инструкция показалка брояч на инструкциите

Регистри AX, BX, CX и DX ни позволи да не се прилага по отношение на регистъра и за високите и ниските байта

AX AH, ALBX BH, DLDX DH, DLCX CX, CL

В момента сме използвали регистър AX в стъпка "Стъпка 3 -. HelloWord програма" За да настроите функцията за прекъсване.

Mov ах, 40hint 21ч Mov ах, 04Ch вътр 21ч

В този случай, ние използваме само част от регистъра, а по-скоро високо байт:

Н високо L ниско старши младши

Защо не сме използвали, казват, паметта? Да, защото има правила, там, където трябва да се съхраняват в прекъсването на повикване. По-точно това, което и в това, което трябва да бъде регистъра. Обикновено това са описани в документацията. Ами, например, най-новите ни черта е описан като

Int 21H функция 4CHAH = 4-канален AL = vozvrataVozvrata няма код.

Той спира процеса, и предава кода на операционната система замяна.

В този момент вие трябва да осъзнаят, че повечето операции използват регистри, и да прекъсне специално за спецификацията там, където е написано какво и как е необходимо да се регистрирате.

Също така в крачка "Стъпка 7 -. MOV команда" Срещнахме се няколко пъти MOV инструкция. Ето едно парче:

Mov BX, 1 Mov CX, 21 Mov DX, офсетов Hellostr Mov ах, 40h

MOV команда означава мястото, от едно място на друго:

MOV получател, потребителят

Mov BX, 1; 1 поставя в BX Mov CX, 21; 21, поставен в CX Mov DX, офсетов Hellostr; пробва изместване DX Mov ах линия, 40h; ах постави в брой 40h

Нека се върнем малко код "Стъпка 3 - HelloWord програма" и познания за стъпките, "Стъпка 6 - Какво е регистър" за функция 04Ch ние вече знаем, че в ниската слово регистър AX (Алабама), можете да се върнете на кода на програмата. Нека се опитаме:

МОДЕЛ TINYSTACK 256 DATASEG Hellostr DB "Здравейте First Step сайта" CODESEG започнете: Mov брадва, @ MOV данни DS, брадва Mov BX, 1 Mov CX, 21 Mov DX, офсетов Hellostr Mov ах, 40h вътр 21ч Mov ах, 04Ch Mov Ал, 1ч старт вътр 21hend

Нищо не е не се е променил програмата как да тече доста по-напред и да започне. програма код за връщане може да се лекува в BAT файлове. Писане run.bat:

@echo off7.exeif errorlevel 1 Иди endecho грешка: endecho край

грешка дума не се показва, както е писано, ако кодът на връщане е 1, а след това отидете до края. Като цяло, тази практика се разпространява досега. Пример бухалка файлове от директорията на Windows (Windows 98):

избор / C: ynif errorlevel 2 Иди FORMAT_CANCELif errorlevel 1 Иди формат: FORMAT_CANCEL.

За да посочите регистър сегмент данни се използват DS. Това е, в регистъра се посочва в началото на данни в нашата програма или DATASEG сегмент. Ние сме с вас в стъпка "Стъпка 3 - HelloWord програма", за да го направите:

Mov брадва, @ MOV данни DS, брадва

На първо място, това, което @data - DATASEG този идентификатор за съставяне и изграждане на прилагането на мястото на думата ще бъдат доставени до действителното преместване на сегмента, в която пребивава данни. В крайна сметка, да се изгради програмата, ние не знаем. Тъй като в този модел Паметта съхранява данни в края на програмния код, дори добавяне на един екип, за да променят своето местоположение. И всъщност този номер е известен само в събранието.

Защо ние поставяме на първо място в AX регистър. Въпреки това, има просто правило - не можете директно да променя съдържанието на регистрите CS, DS, SS. Това означава, че ние не може да пише:

Можем да променим този регистър само с помощта на други регистри. Така че, виждате, всички заедно:

Mov брадва, @ данни; промяна регистър AX за данни Mov DS, брадва; определен на ДС регистрирате AX се яде сега там се компенсира.

Това е всичко. Аз ще ви дам един прозорец на дебъгер, който ще обясни по-късно:

Етап 6 - че тези регистри

Виж, това е нашият код в инструкция на процесора след изпълнение на команда MOV ПД, брадва регистрираме DS ще бъде равна на регистър AX, и в този случай от 1343.

Така че, ние имаме регистър DS. в който не можем да имат директен достъп, и само с помощта на другите регистри. Този регистър показва данните.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!