Envio un cordial saludo esperando me puedan auxiliar con este programa que he realizado en Visual C++ utilizando lenguaje ensamblador se trata de una calculadora basica, solo que es sobre una aplicacion de 16 bits y lo quiero pasar a 32 bits para
lo cual no puedo usar la interrupcion 21 (INT 21H). Se pudiera agregar un gethche para leer el dato que leo con la funcion 1 de la INT 21h??? ademas de los errores que enlisto a continuacion, espero alguien me pueda ayudar:
(13): error C3861: 'Readnum': no se encontró el identificador
(15): error C3861: 'Readnum': no se encontró el identificador
(32): error C3861: 'Dispn': no se encontró el identificador
(35): error C3861: 'Break': no se encontró el identificador
(53): error C2443: conflicto de tamaño de operando
(55): error C2443: conflicto de tamaño de operando
(61): error C2443: conflicto de tamaño de operando
(69): error C2443: conflicto de tamaño de operando
#include "stdafx.h"
int temp;
void main (void)
{
int temp1, oper;
while (1)
{
oper = Readnum();
temp1 = temp;
if ( Readnum() == '=' )
{
switch(oper)
{
case '+':
temp += temp1;
break;
case '-':
temp = temp1 - temp;
break;
case '/':
temp = temp1 / temp;
break;
case '*':
temp *= temp1;
break;
}
Dispn(temp);
}
else
Break;
}
}
int Readnum()
{
int a;
temp = 0;
_asm
{
Readnum1:
mov ah,1
int 21h
cmp al,30h
jb Readnum2
cmp al,39h
ja Readnum2
sub al,30h
shl temp,1
mov bx,temp
shl temp,2
add temp,bx
add byte ptr temp,al
adc byte ptr temp+1,0
jmp Readnum1
Readnum2:
Mov ah,0
mov a,ax
}
return a;
}
int Dispn (int DispnTemp)
{
_asm
{
mov ax,DispnTemp
mov bx,10
push bx
Dispn1:
mov dx,0
div bx
push dx
cmp ax,0
jne Dispn1
Dispn2:
pop dx
cmp dl,bl
je Dispn3
add dl,30h
mov ah,2
int 21h
jmp Dispn2
Dispn3:
mov dl,13
int 21h
mov dl,10
int 21h
}
}
Gracias!!!!!!