汇编语言四则运算源代码+流程图 第2页


加减乘除四则运算
 7、附录:源程序代码
    B_P     EQU BYTE PTR
W_P     EQU WORD PTR
D_P     EQU DWORD PTR
CODE    SEGMENT
ASSUME  CS:CODE,DS:CODE
        ORG 100H
;主程序开始
NEWSTAR:
        JMP STAR
        EVEN
NUM1    DW 0,0
NUM2    DW 0,0
NUM3    DW 0,0
JGV4    DW 0,0
YSF     LABEL WORD
YSF1    DB 0
YSF2    DB 0
JUV     DB 0
UV      DB 0
;使DS:SI指向第一有效字符
OVERS   LABEL NEAR
        CLD
        PUSH AX
OVERS1:
        LODSB
        CMP AL,' '
        JZ OVERS1
        CMP AL,9
        JZ OVERS1
        DEC SI
        CMP AL,13
        POP AX
        RET
;输出一个制表符
TAB     LABEL NEAR
        MOV AL,9
        JMP SHORT DISP
;输出一个回车换行符
CRLF    LABEL NEAR
        MOV AL,13
        CALL DISP
        MOV AL,10
;显示一个字符
DISP    LABEL NEAR
        PUSH AX
        PUSH DX
        MOV AH,2
        MOV DL,AL
        INT 21H
        POP DX
        POP AX
        RET
;检查是否为运算符
ISYSF   LABEL NEAR
        CLD
        LODSB
        CALL ISJJ
        JZ ISYSF1
        CALL ISII
        JZ ISYSF1
        DEC SI
ISYSF1:
        RET
;检查是否是加减运算
ISJJ    LABEL NEAR
        CMP AL,'+'
        JZ ISYSF1
        CMP AL,'-'
        RET
;检查是否为乘除运算
ISII    LABEL NEAR
        CMP AL,'*'
        JZ ISYSF1
        CMP AL,'/'
        JZ ISYSF1
        CMP AL,'\'
        RET
;数据输出
;CX=10 十进制
;CX=16 十六进制
DOUT    LABEL NEAR
        PUSH AX
        PUSH BX
        PUSH DX
        PUSH BP
        XOR BP,BP
DOUT1:
        INC BP
        PUSH AX
        MOV AX,DX
        XOR DX,DX
        DIV CX
        MOV BX,AX
        POP AX
        DIV CX
        PUSH DX
        MOV DX,BX
        OR BX,AX
        JNZ DOUT1
751com.cn
        ADD AL,'A'-'9'-1
DOUT3:
        CALL DISP
        DEC BP
        JNZ DOUT2
        POP BP
        POP DX
        POP BX
        POP AX
        RET
;输入数据在DX:AX中返回
;CX=0 数据为10进制
;CX#0 数据为16进制
DATE    LABEL NEAR
        PUSH BX
        PUSH BP
        PUSH DI
        XOR AX,AX
        XOR DX,DX

上一页  [1] [2] [3] [4] [5] 下一页

  • 上一篇文章:
  • 下一篇文章:
  • Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有