汇编,有符号十进制数输入输出

STA SEGMENT STACK
    DW 40H DUP(?)
    TOP LABEL WORD
STA ENDS
DATA SEGMENT


  CRLF DB 0DH,0AH,24H
DATA ENDS


CODE SEGMENT


   ASSUME CS:CODE,SS:STA,DS:DATA
   
  MAIN PROC FAR
   MOV AX,STA
   MOV SS,AX
   LEA SP,TOP
   MOV AX,DATA
   MOV DS,AX


   MOV CX,5
   XOR BX,BX
   JMP FI


FU: MOV DX,1
    PUSH DX
    JMP L1
FN:
    DEC CX
    JMP FNN
FUO:
    NEG BX
    JMP L5
       
FI: MOV AH,1
    INT 21H
    CMP AL,0DH
    JE L3
    CMP AL,'+'
    JE L1
    CMP AL,2DH
    JE FU
   CMP AL,30H
   JAE FN
  
    
   
L1:MOV AH,1
   INT 21H
   
   CMP AL,0DH
   JE L3
   CMP AL,30H
   JB L1
 
   CMP AL,39H
   JA L1
FNN:
   AND AX,0FH                    ;0000 0000 0000 1111
   XCHG AX,BX                   ;交换两个数
   MOV SI,10
   MUL SI
   JC L2                              ;判断溢出,若溢出,则退出
   ADD BX,AX
   JC L2
   LOOP L1                           ;这里规定最多输五位的十进制数


L3:


   MOV AH,9
   LEA DX,CRLF                    ;回车换行
   INT 21H


   
   MOV CX,16
   POP DX
   CMP DX,1
   JNE L5
   NEG BX
   
   
L5: XOR DX,DX
   SHL BX,1
   ADC DL,0
   AND DL,1
   OR DL,30H
   
   MOV AH,2
   INT 21H
   LOOP L5


L2:MOV AH,4CH
   INT 21H
   MAIN ENDP
   CODE ENDS
   END MAIN
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值