Почему программа мне выдает ошибки? - Assembler

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

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

почему программа мне выдает ошибки?
X dw 8A64h
Y dw B3D1h
Q dw 88BDh
M dw 0h
R dw 0h
.code   ;ᥣ¬Ґ*в Є®¤*
main:   ;в®зЄ* ўе®¤* ў Їа®Ја*¬¬г
    mov ax,@data    ;бўп§лў*Ґ¬ ॣЁбва dx б ᥣ¬Ґ*⮬
    mov ds,ax   ;¤***ле зҐаҐ§ ॣЁбва ax
    xor ax,ax   ;®зЁй*Ґ¬ ax
;...
mov bx,0h
mov cx,4h
one:
mov ax, [bx]
mov cx,4h
mul,cx
loop one
mov ax,X
mov bx,Y
add ax,Y
mov dx,ax
mov ax,Q
sub dx,ax
mov M,dx
mov AX,21h
cmp M,AX
ja label1
mov ax,M
mov bx,0FF0h
add ax,bx
mov R,ax
jmp ste
label1:
mov ax,M
or M,0FF0h
mov ax,R
mov R,ax
ste:
??
exit:
то что не такого символа
Y dw B3D1h
и как мне пройти на отрицательность проверку?
и почему то он на 17 строчку ругается где умножение на 4 идет
само задание Дано: X=8A64 Y=B3D1 Q=88BD (расположены в памяти один за другим) В цикле каждое из X, Y, Q умножить на 4 (результат X',Y',Q') Вычислить M=X'+Y'-Q' M>21 переход к п/п 1 (R=M or 0FF0) M21 переход кп/п 2 (R=M+1028) {М - число со знаком} Если R положительно, то переход к АДР1 (R <3c< ), если R отрицательно, то переход к АДР2 (R >2> )

Решение задачи: «Почему программа мне выдает ошибки?»

textual
Листинг программы
.model  small
.stack
.data
X   dw 08A64h
Y   dw 0B3D1h
Q   dw 088BDh
M   dd 0h
R   dw 0h
    .code
main:
    mov ax,@data
    mov ds,ax
.386
    lea esi, X
    mov ecx, 3  
    xor ebx, ebx
    mov eax, ebx
@@: lodsw
;   movsx   eax, ax     ; только при учтении знака
    lea ebx, [eax*4+ebx]
    loop    @B
; eax = M=X'+Y'-Q'
    mov [M], eax
    mov ax, 4C00h
    int 21h
    end main

Объяснение кода листинга программы

.model  small .stack .data X   dw 08A64h Y   dw 0B3D1h Q   dw 088BDh M   dd 0h R   dw 0h     .code main:     mov ax,@data     mov ds,ax .386     lea esi, X     mov ecx, 3      xor ebx, ebx     mov eax, ebx @@: lodsw ;   movsx   eax, ax     ; только при учтении знака     lea ebx, [eax*4+ebx]     loop    @B ; eax = M=X'+Y'-Q'     mov [M], eax     mov ax, 4C00h     int 21h     end main Список:

  1. Переменная X содержит значение 08A64h.
  2. Переменная Y содержит значение 0B3D1h.
  3. Переменная Q содержит значение 088BDh.
  4. Переменная M содержит значение 0.
  5. Переменная R содержит значение 0.

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


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

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

7   голосов , оценка 4.143 из 5
Похожие ответы