Написание программы, позволяющей осуществлять ввод с клавиатуры двоичных чисел и их вычитание, страница 4

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 с.