Res=X-Y+Z - Assembler
Формулировка задачи:
Res=X-Y+Z,
X,Y – однобайтные; Z - четырехбайтное
как расширить х однобайтный до двух байтного, и также y, с учетом займа из 4 байтного 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
Решение задачи: «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 .......
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д