• 用80x86汇编语言编程:1 + 2 + 3 + 4 + 5 + …… + n,和小于100,在屏幕上显示次数和结果。


    ;==============================================
    ;1+...+n < 100
    ;----------------------------------------------
    DATA  SEGMENT          ;数据段
     i  DW  1
    sum DW  0
    DATA  ENDS
    ;----------------------------------------------
    CODE   SEGMENT         ;代码段
        ASSUME   CS: CODE, DS: DATA
    START:
        PUSH CS
        POP  DS
        MOV  i, 1
        MOV  sum, 0
    LOP:
        MOV  AX, sum
        ADD  AX, i
        CMP  AX, 100
        JNB  EXIT
        MOV  sum, AX

        MOV  AX, i
        CALL PRINTAX
        MOV  DL, ':'
        CALL PUTC
        MOV  DL, ' '
        CALL PUTC
        MOV  AX, sum
        CALL PRINTAX
        INC  i
        CALL OUT_0D0A
        JMP  LOP

    EXIT:   
        MOV  AH, 4CH
        INT  21H
    ;------------------------------
    PRINTAX PROC        ;
        MOV  BX, 10     ;
        OR   AX, AX
        JZ   _0_
    LOOP_P:
        XOR  DX, DX
        DIV  BX
        MOV  CX, AX     ;
        OR   CX, DX
        JZ   _E_        ;
        PUSH DX         ;
        CALL LOOP_P    
        POP  DX         ;
        ADD  DL, '0'    ;
        JMP  _1_
    _0_:MOV  DL, '0'    ;
    _1_:CALL PUTC
    _E_:RET
    PRINTAX ENDP
    ;------------------------------
    PUTC  PROC 
        MOV  AH, 2
        INT  21H
        RET
    PUTC  ENDP
    ;------------------------------
    OUT_0D0A  PROC      ;回车换行.
        MOV  DL, 13
        CALL PUTC
        MOV  DL, 10
        CALL PUTC
        RET
    OUT_0D0A ENDP
    ;------------------------------
    CODE  ENDS
        END  START
    ;==============================================
    程序运行后屏幕显示的画面如图所示:
     

  • 相关阅读:
    打印二叉树和为某一值的路径
    顺时针打印数组
    算术表达式
    堆内存与栈内存详解
    【腾讯校招在线考试附加题】将一个10进制数转换为四位定长的36进制数
    反转链表
    记录github出错及解决方案
    centos7操作防火墙
    无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]解决方法
    MyBatis联表查询——别名方式
  • 原文地址:https://www.cnblogs.com/umgsai/p/3908212.html
Copyright © 2020-2023  润新知