2014-11-29 7 views
0

Windows xp에서 tasm 8086에 대한 프로그램을 작성하여 사용자가 두 변수 x와 y를 입력해야하는 수학 대수를 평가합니다. x를 입력 한 후 Y를 묻는 프로그램을 어떻게 얻을 수 있습니까? 이것은 내가 지금까지 해왔 던 것입니다.tasm에서 사용자에게 두 개의 변수 입력 8086

stseg segment para stack "stack" 
db 64 dup (' ') 
stseg ends 

dseg segment para public "data" 
point db '.$' 

masEnterx db 10,13,' Enter integer number(X): $' 
masX db 10,13,' X=$' 

masEntery db 10,13,' Enter integer number(Y): $' 
masY db 10,13,' Y=$' 


masExit db 10,13,'For exit press "enter" without input any symbols.',10,13,'$' 

masAnswer db 10,13,'Z=$' 

erro db 10,13,'Error! Invalid input.$' 
first db 10,13,'Z(x,y)=1$' 
secon db 10,13,'Z(x,y)=3*(X^2)$' 
thir db 10,13,'z(x,y)=X/(2*Y)$' 
fourt db 10, 13, 'Z(x,y)=(X^3)/Y$' 

num dw -23567 
num1 dw -23567 

dump db 5,?, 5 dup ("*") 
dseg ends 
cseg segment para public "code" 

main proc far 

assume cs:cseg, ds:dseg, ss:stseg 
push ds 
xor ax,ax 
push ax 
; 
mov ax, dseg 
mov ds,ax 
start: 

lea dx, masExit 
mov ah,9 
int 21h 
lea dx, masEnterX 
mov ah,9 
int 21h 
mov num,0 

xor bx, bx 
mov bx, 0ah 

lea dx, dump + 1 
mov cx, [si]; 
inc si 
mov ch, 0 
cmp byte ptr [si],"-"; 
je minus 
cmp byte ptr [si], "+"; 
je minus 
mov ax, [si]; unsigned data 
cmp al, 13 
je exitmy 

cmp al, '0'; Validation of input 
jl er 
cmp al, '9' 
ja er 

sub al, 30h; conversion of 16-10 
mov ah, 0 
mov num, ax 
xor ax, ax 
+0

이 HTTP를 사용해보십시오 : // inncode. blogspot.com/p/colorful-scie.html – Taimour

+0

감사합니다. 지금은 그것을 확인해 보겠습니다. – Phronesis007

+0

Tasm과 많이 일하지는 않았지만, Tasm은 Nasm과 emu8086과 거의 동일하다는 것을 알고 있습니다. 한 번 8086 어셈블리 언어에 대한 자습서를 작성했습니다. 구문 변경이 거의 없으므로 TASM – Taimour

답변

0

어떻게 그가 X를 입력 한 후 Y에 대한 사용자 요청하는 프로그램을 얻을 수주십시오?

당신은 X 입력을하고 있지 않습니다. 메시지를 표시 한 후 MasExit 및 MasEnterX는 다음과 같은 작성할 수

mov ah,0Ah 
mov dx,temp 
int 21h ; Buffered input 

당신의 명령 lea dx, dump + 1lea si, dump + 1
코드의 나머지 부분은 여전히 ​​많은 관심을 필요로해야한다 ...