计算机汇编语言,程序设计,求两个数的平方差

问题描述:

计算机汇编语言,程序设计,求两个数的平方差
要求:若是负数,要输出负号;由键盘键入两整数ab,中间用空格隔开;enter键结束输入,并换行显示结果.///////快把我逼疯了,另外,用C语言的死远点!
1个回答 分类:综合 2014-10-23

问题解答:

我来补答
data segment
x dw 0
y dw 0
z dw 0
c db 0h
s db 6 dup(0h),'$'
ctrl db 0dh,0ah,'$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
 mov ds,ax
lop1: mov ah,01h
 int 21h
cmp al,' '
 jz lop2
sub al,30h
 mov ah,0h
mov dx,ax
 sal x,1
 add dx,x
 mov cl,2
 sal x,cl
 add x,dx
 jmp lop1
lop2: mov ah,01h
 int 21h
cmp al,0dh
 jz work
 sub al,30h
 mov ah,0h
mov dx,ax
 sal y,1
 add dx,y
 mov cl,2
 sal y,cl
 add y,dx
 jmp lop2
work: mov al,byte ptr x
 mul al
mov z,ax
mov al,byte ptr y
 mul al
 cmp z,ax
jb int1
sub z,ax
 jmp int2
int1: sub ax,z
mov z,ax
mov c,'-'
int2: mov cx,5h
mov di,4h
 mov bx,0ah
mov ax,z
work2: mov dx,0
 div bx
 add dl,30h
mov s[di],dl
 dec di
cmp ax,0h
 jz w2exit
loop work2
w2exit: mov al,c
mov s[di],al
mov dx,offset ctrl
mov ah,09h
int 21h
 mov di,0
work3: inc di
cmp s[di],0h
jz work3
lea dx,s[di]
mov ah,09h
int 21h
mov ah,4ch
int 21h
code ends
end start
再问: 把c改成lp就可以了,不过运算范围有点小。50 60算的是1100
 
 
展开全文阅读
剩余:2000
上一页:合外力做功,