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

来源:互联网 发布:r语言导入数据 编辑:程序博客网 时间:2024/04/28 10:28
问题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)<0c(i)=a(i)


问题2:怎样用汇编语言实现输入两个十进制数将其相加输出结果?
以下是完整的汇编供参考(注意,结果不能大于32767)
CODE SEGMENTASSUME CS:CODEstart:    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,bxinput1:    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 input1input2:    mov ax,bx    pop cx    pop bx    retinput ENDPDISPBXD  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  RETDISPBXD  ENDPCODE ENDSEND START


0 0