mov dl, al |
sin <<b; |
sub dl, ‘1’ |
if(b==1) ra=8; |
jb ra2 |
|
mov dh, 8 |
|
ra2: |
sin <<b; |
mov ah, 01h |
if(b==1) ra=ra+4; |
int 21h |
|
mov dl, al |
|
sub bl, ‘1’ |
|
jb ra1 |
|
mov dh, 4 |
|
ra1: |
sin <<b; |
mov ah, 01h |
if(b==1) ra=ra+2; |
int 21h |
|
mov dl, al |
|
sub dl, ‘1’ |
|
jb ra0 |
sin <<b; |
mov dh, 2 |
if(b==1) ra=ra+1; |
ra0: |
|
mov ah, 01h |
|
int 21h |
|
mov dl, al |
|
sub dl, ‘1’ |
|
jb raz |
|
add dh,1 |
|
raz: |
|
sub bh, dh |
r=r-ra; |
jnc m1 |
if (r<0) r=abs(r); |
neg bh |
|
m1: |
|
mov dx, offset crlf |
|
mov ah, 9 |
|
int 21h |
|
mov dx, offset message3 |
printf(“Разность: \n”); |
mov ah, 9 |
|
int 21h |
|
mov dx, offset zero |
|
cmp bh,8 |
if(r >8) { printf(“1”); |
jb raz3 |
r=r-8;} |
mov dx, offset one |
else printf(“0”); |
sub bh, 8 |
|
raz3: |
|
mov ah, 9 |
|
int 21h |
|
mov dx, offset zero |
|
cmp bh,4 |
if(r >4) { printf(“1”); |
jb raz2 |
r=r-4;} |
mov dx, offset one |
else printf(“0”); |
sub bh, 4 |
|
raz2: |
|
mov ah, 9 |
int 21h |
|
mov dx, offset zero |
|
cmp bh, 2 |
if(r >2) { printf(“1”); |
jb raz2 |
r=r-2;} |
mov dx, offset one |
else printf(“0”); |
sub bh, 2 |
|
raz1: |
|
mov ah,9 |
|
int 21h |
|
mov dx, offset zero |
|
cmp bh, 1 |
if(r < 1) printf(“0”); |
jb raz0 |
else printf(“1”); |
mov dx, offset one |
|
raz0: |
|
mov ah,9 |
|
int 21h |
|
mov ax, 4C00h |
} |
int 21h |
|
.data |
|
message1 db “Вычисляемое число: &” |
|
message2 db “Вычитаемое число :&” |
|
message3 db “Разность :&” |
|
one db “1&” |
|
zero db “0&” |
|
crlf db 0Dh, 0Ah, ‘&’ |
|
end start |
Вывод: В ходе выполнения лабораторной работы были рассмотрены основны программирование на языке программирования Assembler. А также исследованы программы и их дизассемблированный код. А также написана программы на ассемблере «Ввод с клавиатуры двоичных чисел и их вычитание».
Для оптимизации кода программы на Assembler я бы порекомендовал использование подпрограмм ввода с клавиатуры двоичных, да и не только, чисел, а также их вывод на экран; а для кода на C желательно использование команд со вставками на Assembler’е или использование функций работы с бинарными данными.
Используемая литература:
1. В.И. Юров “Assembler” – СПб: Питер, 2002 – 624с.
2. С.В. Зубков “Assembler” – ДМК “Пресс”, 1999 – 624с.
3. Системное программное обеспечение / А.В. Гордеев, А.Ю. Молчанов. - СПб.: Питер, 2002. - 736 с.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.