Res=X-Y+Z - Assembler

Узнай цену своей работы

Формулировка задачи:

Res=X-Y+Z, X,Y – однобайтные; Z - четырехбайтное
begin segment ; Сегмент кода программы
assume cs: begin, ds:dates, ss: komod
start: 
mov ax, dates ; НастройкаDS на начало сегмента данных
mov ds, ax 
 
mov al, x;
sub al, y;
mov ah, 0;
 
mov bx, word ptr [z];
mov cx, word ptr [z+2];
 
add bx, ax;
adc cx, 0;
 
mov word ptr res, bx;
mov word ptr res+2, cx;
 
mov ah, 2;
mov dl, 'A';
int 21h
 
mov ax, 4c00h ; Завершение программы с кодом0 
int 21h 
 
begin ends 
 
dates segment ; Сегмент данных
Msg db 'Hello! ', 13,10,'$'
 
x db 20h;
y db 10h;
z dd 123456h;
res dd;
 
dates ends
 
komod segment stack ; Сегмент стека
dw 128 dup (?) ; под стек отводится 128 слов
komod ends
 
end Start
как расширить х однобайтный до двух байтного, и также y, с учетом займа из 4 байтного z

Решение задачи: «Res=X-Y+Z»

textual
Листинг программы
.....
xor  ax,ax
xor  bx,bx
xor  cx,cx
mov  al,X
mov  bl,Y
sub  ax,bx
sbb  cx,0
add  ax,Z
adc  cx,Z+2
mov  res,ax
mov  res+2,cx
.......

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5