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

Двоични, осмични, десетични, шестнадесетични системи цифри са позиционни. Позиционен номер система - такава, в която стойността на номера, зависи от позицията си в броя, номерата на позициите в броя на поръчките за обаждания или електричество. В основата на позиционна бройна система е разход, при което попълва по следния номер на поръчка. В противен случай, номерата на корен равен на броя, включително нула, кой номер се записва в тази система.

Assembler позволява използването на числа в двоичен, осмична, десетичен или шестнадесетичен. По подразбиране, асемблер намира всички номера в програмата, след десетичната. Изрично въз основа на броя можете да използвате маркера (MASM32 11 версия): B или у - двоични числа; о или Q - за осмично; г или т - знак; ч - за шестнадесетични числа. Tag номера, написани в края, заедно с броя. Ако номерът се използва латинската азбука (шестнадесетичен номер) в началото на записани нула - от правилата на асемблер за обозначаване номера трябва да започват с цифра. Например:

данни var1 байт 00001111b; 15 в двоично представяне var2 байт 00001111y; 15 в двоично представяне var3 байт 17О; 15 осмично var4 байт 17q; 15 осмично var5 байт 15d; 15 в десетичен представителство var6 байт 15тон; 15 в десетичен представителство var7 байт 0Fh; 15 в шестнадесетична представяне

Можете да зададете вида на поисканото от цифрите на програмата в инструкцията раздел тип директива

в която базовата нотация посочено от десетично число. Така например, в съответствие с инструкциите

асемблер ще приемем, че всички числа без етикети в програмата са в шестнадесетичен вид.

Наличието на две възможности за маркери на двукомпонентни и десетични числа, дължащи се на причини за съвместимост MASM32 по-ранни версии, в които възможността да се записват числа в шестнадесетичен формат не е с по-нови версии. За шестнадесетични числа арабски цифри не е достатъчно, така че цифровата номер, допълнени с буквата:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, Е, F

Лесно е да се види, че на етикетите от по-ранни версии MASM32 - Б и Г - същото като шестнадесетични цифри, което ги прави невъзможно да се използват в директива .RADIX 16. етикет етикет р о наречен заради приликата с първата нула. Поради тези причини, предпочитани са маркери у. р. т.

В компютъра, всички номера се съхраняват като последователности от нули и единици. Когато пишем текста на програмата произволен брой, превода му на представителство за машинно четене предвижда асемблер и изпълнимия файл, че броят им ще бъде записана в правилното (двоичен) форма. Но за организиране на изхода от номера на програмата вече е в ясен формат за потребителя трябва да направим, а след това, ако искате да покажете на потребителя номера, след което трябва да се направи програмата, както следва: а) да прехвърли определен брой от двоичен в десетичен - от представителството на машината на човека; б) на мястото на получената десетична броя го за символ, това е, което съответства на номера на снимката, защото монитора На точно изображение, вместо да броят.

Превод на машината в предварително определена последователност система за номериране се осъществява чрез разделяне на този брой, и резултатите, получени въз основа на желания брой система. Останалата част от разделението се съхранява в най-маловажният бит, частното се разделя отново корен остатък се влезе в следващото ниво - и така нататък, за да се постигне нулев резултат на разделението. Да предположим, че искате да конвертирате десетично число 250 в шестнадесетичен вид:
250/16 = 15. остатък = А (10)
15/16 = 0, остатъкът = F (15)
Така, 250 (знак) = FA (шестнадесетичен).

Максималният брой, който може да се запише в байтове е 255. Ако резултатите от програмата трябва да покаже броя в десетичен формат на променливата на един байт, този брой трябва да бъде разделена на 10, не е повече от три пъти - в 255 три знака след десетичната поръчки. тип променлива дума (два байта), максималната стойност от 65 535 в двойна дума за тип променлива (четири байта) - 4294967 295. Съответно броят на думата трансфери десетичната разделете на 10 е не повече от пет пъти, двойна дума -не повече от десет пъти.

Кодове-цифрени знаци са: "0" - 48; "1" - 49; "2" - 50; "3" - 51; "4" - 52; "5" - 53; "6" - 54; "7" - 55; "8" - 56; "9" - 57. Очевидно е, че за трансферната стойност на цифрата в характера така любезен да добавите към своя 48.

Фрагмент на програмата, която се превежда байт променлива в десетична форма характер

данни делител байт 10; разделител buffer_dec байт 3 мезонети (?) parametr байт 255. код старт. ; Ние се получат стойностите на parametr байт десетичен знак форма Mov AH, 0; нула, AH Mov AL, parametr; копирате байт променлива в разделителя на AL DIV; разделение AX 10 Mov buffer_dec [2], AH; копиране на остатъка от деление в buffer_dec [2] Mov AH, 0; нула, AH DIV делител; разделение AX 10 Mov buffer_dec [1], AH; копиране на остатъка от деление в buffer_dec [1] Mov buffer_dec [0], AL; лично копие в buffer_dec [0] ДОБАВИ buffer_dec [0], 48; добавяне на 48 - получи номера на символ "2" ADD buffer_dec [1], 48; добавяне на 48 - получите номера на символ "5" ADD buffer_dec [2], 48; добавяне на 48 - получаваме номерата на символ "5"

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

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