
- •Integer- -32768… 32767 2 байта со знаком
- •Работа с integer (word)
- •Условный переход
- •Сумма первых 10 четных чисел
- •Найти количество чисел от а до 1, которые делятся на 3.
- •Var a,c:byte; (* Кол. Чисел от а до 1, дел на 3*)
- •Можно использовать для а тип word, то тогда надо, чтобы результат был не больше 255.
Справочник по Ассемблеру
Целочисленные типы данных в Паскале.
SHORTINT - -128…127 1 байт со знаком
Integer- -32768… 32767 2 байта со знаком
LONGINT - - 4 байта со знаком 2 слова
BYTE – 0…255 – 1 байт без знака
WORD – 0..65535 – 2 байта без знака 1 слово
MOV ADD SUB MUL DIV
Перевод в AX:DX из A
mov ax,word ptr a
mov dx,word ptr a+2
Перевод из AX:DX в A
mov word ptr a,ax
mov word ptr a+2,dx
CMP A,AX
JE @1 (N,E,G,L, A,B)
JMP @1
@1:
Вычисления
Работа с BYTE
var a,b,d1,d2:byte; |
|
a1,c1:word; b1:integer; |
|
begin |
|
read(a,b); |
|
asm |
a+b |
mov al,a |
Пересылаем в регистр al значение переменной а |
mov ah,0 |
Пересылаем в регистр ah 0, чтобы довести значение переменной до word |
mov bl,b |
Пересылаем в регистр bl значение переменной b |
mov bh,0 |
Пересылаем в регистр bh 0, чтобы довести значение переменной до word |
add ax,bx |
Складываем полученные регистры ax и bx |
mov a1,ax |
Пересылаем полученный результат в переменную а1 |
end; |
|
asm |
a-b |
mov al,a |
Пересылаем в регистр al значение переменной а |
mov ah,0 |
Пересылаем в регистр ah 0, чтобы довести значение переменной до integer |
mov bl,b |
Пересылаем в регистр bl значение переменной b |
mov bh,0 |
Пересылаем в регистр bh 0, чтобы довести значение переменной до integer |
sub ax,bx |
Вычитаем из значения регистра ax значение регистра bx |
mov b1,ax |
Пересылаем полученный результат в переменную b1 |
end; |
|
asm |
a*b |
mov al,a |
Пересылаем в регистр al значение переменной а |
mul b |
Умножаем результат регистра al на переменную b (результат записывается в регистр ax) |
mov c1,ax |
Пересылаем полученный результат в переменную с1 |
end; |
|
asm |
а/b |
mov al,a |
Пересылаем в регистр al значение переменной а |
mov ah,0 |
Пересылаем в регистр ah 0, чтобы довести значение переменной до word |
div b |
Делим значение регистра ax на b |
mov d1,al |
Пересылаем результат деления в переменную d1 |
mov d2,ah |
Пересылаем остаток от деления в переменную d2 |
end; |
|
writeln('сумма=',a1); |
|
writeln('разность=',b1); |
|
writeln('произведение=',c1); |
|
writeln('частное=',d1); |
|
writeln('остаток=',d2); |
|
end. |
|