问题1:用汇编语言编写,将一个包含10个带符号数的数组分成正数数组和负数数组?
1.你的10个带符号的数据是存放在内存中还是要手工输入的(这个代码量就大多了)
2.你的10个数据是几个字节的(最简的是单字节操作)
3.分好的数据是单独存放还是存放在原位置,要不要输出
代码:
问题2:怎样用汇编语言实现输入两个十进制数将其相加输出结果?
以下是完整的汇编供参考(注意,结果不能大于32767)
1.你的10个带符号的数据是存放在内存中还是要手工输入的(这个代码量就大多了)
2.你的10个数据是几个字节的(最简的是单字节操作)
3.分好的数据是单独存放还是存放在原位置,要不要输出
代码:
double:a(i),b(i),c(i)
for(i=0,i<9,i++)
{ if a(i) >0,
b(i)= a(i)
else if a (i)<0
c(i)=a(i)
问题2:怎样用汇编语言实现输入两个十进制数将其相加输出结果?
以下是完整的汇编供参考(注意,结果不能大于32767)
CODE SEGMENT
ASSUME CS:CODE
start:
call input ;输入一个数
mov bx,ax ;放入BX
call input ;输入另一个数
add bx,ax ;与上一个数相加
call dispbxd; //显示结果
mov ah,04ch
int 21h
;输入数据子程序,以空格或回车结束
;结果在ax中
input PROC
push bx
push cx
xor bx,bx
input1:
mov ah,1
int 21H
cmp al,0dh
je input2
cmp al,20h
je input2
sub al,'0'
mov cl,al
xor ch,ch
mov ax,bx
mov bx,10
mul bx
mov bx,ax
add bx,cx
jmp input1
input2:
mov ax,bx
pop cx
pop bx
ret
input ENDP
DISPBXD PROC
push si
push dx
push cx
push bx
push ax
CMP BX,0
JGE ZS
MOV DL,'-'
MOV AH,2
INT 21H
ZS:
MOV SI,10
XOR CX,CX
MOV AX,BX
NEXT:
MOV DX,0
DIV SI
PUSH DX
INC CX
CMP AX,0
JNZ NEXT
OUTP:
POP DX
ADD DL,30H
MOV AH,2
INT 21H
LOOP OUTP
mov dl,0dh
mov ah,2
int 21H
mov dl,0ah
mov ah,2
int 21H
pop ax
pop bx
pop cx
pop dx
pop si
RET
DISPBXD ENDP
CODE ENDS
END START