Эй, ребята, у меня небольшая проблема с ассемблерным кодом
Строки 55,60 Типы операндов не совпадают. Пытаюсь ли я переместить 16-битную память в 8-битную или наоборот? если так, как я могу исправить мою проблему? спасибо!
; NUM%
;
.MODEL SMALL
.STACK 100h
.DATA
Ten DW 10
Two DW 2
Num DW 0 ; variable to save Num input from user
Dig DW 0 ; Variable to save Dig input from user
Half_Dig DW 0 ; Variable to save Dig/2
Result DW 0 ; Variable to store result from Num^2%dig
PromptStr1 DB 13,10,'Please Enter Number (from 00 up to 99)',13,10,'$';string output to user
PromptStr2 DB 13,10,'Please Enter Digit (from 0 up to 9)',13,10,'$' ;string output to user
ResultStr DB 13,10,'XX^2 mod X = X',13,10,'$';Result output to user
ResultStr1 DB 13,10,'The result shloud be round up',13,10,'$'
ResultStr2 DB 13,10,'The result shloud be round down',13,10,'$'
DivisionErr DB 13,10,'Division Error',13,10,'$'
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AH,9
MOV DX,OFFSET PromptStr1
INT 21h
; Reading First Part of Num
MOV AH,1
INT 21h
MOV ResultStr[2],AL
SUB AL,'0'
MOV AH,0
MUL Ten
MOV Num,AX
MOV AX,0
; Reading Second Part of Num
MOV AH,1
INT 21h
MOV ResultStr[3],AL
SUB AL,'0'
MOV AH,0
ADD Num,AX
MOV AH,0
; Reading Dig
MOV AH,1
INT 21h
MOV ResultStr[11],AL
SUB AL,'0'
MOV AH,0
MOV Dig,AX
MOV AX,0
; checking to see if dig==0 , if so divsion error
CMP Dig,0
JE Error
MOV AX,Dig
DIV Two
***MOV Half_Dig,AH***
MOV AX,0
MOV AX,Num
MUL Num
DIV Half_dig
***MOV Result, AH***
Буду признателен за помощь в том, что я делаю здесь неправильно!