汇编语言编写数组的问题和实现输入两个十进制数输出的问题

问题1:用汇编语言编写,将一个包含10个带符号数的数组分成正数数组和负数数组?
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


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值