我是靠谱客的博主 酷酷大白,最近开发中收集的这篇文章主要介绍两个多位十进制数相加(纪念本人的第一次汇编代码),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第一次写汇编代码,带着懵懂和尝试,写到半夜两点,54行代码终于出炉了,勉强能够实现两个4位十进制数的加法,在此留下代码作纪念

STACK    SEGMENT STACK                       ;定义堆栈段STACK
         DW    521 DUP(?)                    ;堆栈段的大小是1024B(512字)空间
STACK    ENDS                                ;堆栈段结束
DATA     SEGMENT                             ;定义数据段DATA
STRING1  DB '9619+','$'
STRING2  DB '9658=','$'
SUM      DB '     ','$'
DATA     ENDS                                ;数据段结束
CODE     SEGMENT  'CODE'                     ;定义代码段
         ASSUME  CS:CODE,DS:DATA,SS:STACK    ;确定CS、DS、SS指向的逻辑段
START:MOV  AX,DATA                           ;设置数据段的段地址DS
      MOV  DS,AX
      LEA  SI,STRING1
      LEA  DI,STRING2
      LEA  BX,SUM
      MOV  CX,3
      ADD  SI,3
      ADD  DI,3
      ADD  BX,4
      CLC
      PUSHF
AGAIN:MOV  AL,[SI]
      POPF
      ADC  AL,[DI]
      AAA
      PUSHF
      OR   AL,'0'
      MOV  [BX],AL
      DEC  SI
      DEC  DI
      DEC  BX
      DEC  CX
      JNS  AGAIN
      POPF
      JNC  ONE
      LAHF
      AND  AH,1
      OR   AH,'0'
      MOV  [BX],AH
      JNZ  TWO
ONE:  INC  BX
TWO:  MOV  AH,9
      MOV  DX,OFFSET STRING1
      INT  21H
      MOV  AH,9
      MOV  DX,OFFSET STRING2
      INT  21H
      MOV  AH,9
      MOV  DX,BX
      INT  21H
      MOV  AX,4C00H                          ;利用系统功能调用返回DOS
      INT  21H
      CODE ENDS                              ;代码段结束
      END  START                             ;汇编结束,同时表明程序起始位置为标号START处
实验结果:

该程序可以实现任意的两个4位十进制数相加

菜鸟成长记

最后

以上就是酷酷大白为你收集整理的两个多位十进制数相加(纪念本人的第一次汇编代码)的全部内容,希望文章能够帮你解决两个多位十进制数相加(纪念本人的第一次汇编代码)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部