DIV Неподписани уроци и примери за програмиране на цяло число

Programm.ws е сайт, където можете да четете литература за езици за програмиране, както и да видите примери за работещи програми в C ++, асемблер, pascal и много други.

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

Приложение. Комплект инструкции за процесор Intel

DIV Деление на неподписани цели числа

Командата div разделя неподписано цяло число в регистрите AX (за разделяне по байт) или DX: AX (за разделяне по дума) от изходния операнд (неподписано цяло число). Размерът на дивидента е два пъти по-голям от делителя и остатъка.

За еднобайтови операции дивидентът се поставя в AX регистъра; след приключване на операцията коефициентът се записва в регистъра AL, а останалата част - в регистъра AH.
За двубайтови операции дивидентът се поставя в DX регистрите: AX (в DX - горната част, в AX - долната част); след приключване на операцията, коефициентът се записва в AX регистъра, а останалата част се записва в DX регистъра.
Като операнд на делител на командата div можете да посочите регистър (с изключение на сегмент) или място в паметта; не се допуска разделяне по непосредствена стойност. Ако делителят е 0 или ако коефициентът не се побира в назначения регистър, се вдига прекъсване с вектор 0. Командата не засяга флаговете на процесора.
Командата div може да се използва за целочислено разделяне на разопакован bcd номер в AX регистъра, разопакован bcd делител, ако изпълните командата aad преди него (вижте пример 3).


mov AX, 506; Делима
mov BL, 50; Делител
div BL; AL = 0Ah (коефициент), AH = 06h (остатък)


; В полетата с данни
дълго dd 65537; Делимо
; В програмния сегмент
mov DX, дума ptr дълга + 2; DX = 0001h, висока
; част от дивидента
mov AX, дума ptr дълга; AX = 0001h, ниска
; част от дивидента
mov CX, 256; Делител
div CX; AX = 0100h (коефициент),
; DX = 0001h (остатък)


mov AX, 0807h; Разопакован BCD 87
mov DL, 09h; Разопакован BCD 9
aad; AX = 0057h = 87
div DL; AX = 0609h, т.е. 9 и 6 остатък


mov EAX, 0FFFFFFFh; Най-малко значителна част от дивидента
mov EDX, 0; Основна част от дивидента
mov EBX, 256; Делител
div EBX; Частно в EAX = 000FFFFFh,
; Оставащ EDX = 000000FFh