汇编语言实现2个任意数相加_第1页
汇编语言实现2个任意数相加_第2页
汇编语言实现2个任意数相加_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DATAS SEGMENT        X DB 100 DUP(?)        Y DB 100 DUP(?)        Z DB 100 DUP(?),'$'此处输入数据段代码  DATAS ENDSSTACKS SEGMENT    ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT    ASSU

2、ME CS:CODES,DS:DATAS,SS:STACKSSTART:    MOV AX,DATAS        MOV DS,AX        MOV BX,0DATAX:        MOV AH,01H   ;01回显,将数据存放在AL中     INT 21H      CMP A

3、L,'+'   ;"+"与输入的数据相减是否为0,即用“+作为X的结束标志”JZ A1        ;判断,为0时,跳转A1,不为0,执行下一条语句    PUSH AX      ;将AX整个16位(包括AH,AL)一起进栈    INC BX       ;计数   

4、 JMP DATAX    ;循环将X的每个位依次输入  A1:    MOV CX,BX    MOV SI,0A11:    POP AX       ;将AX内的数据出栈    MOV XSI,AL ;将AL的数据保存到X段中    INC SI    LOOP A11  

5、   ;依次循环保存        MOV BX,0DATAY:   MOV AH,01H    INT 21H    CMP AL,'='    JZ A2    PUSH AX    INC BX    JMP DATAY A2:    MOV CX

6、,BX    MOV SI,0A12:POP AX    MOV YSI,AL    INC SI    LOOP A12    ;同理,此处是以"="作为Y值的结束标志,输入Y值并保存在Y段    RESULT:    CLC            PUSHF

7、0;       ;CF先进栈    MOV CX,100    MOV SI,0    MOV DI,99 A3:MOV AL,XSI ;将X段数据放在AL中    MOV DL,YSI ;将X段数据放在DL中         POPF    ADC AL,DL    ;考虑进

8、位运算,AL+DL+CF    AAA            PUSHF    ADD AL,30H   ;转换成ASCII码    MOV ZDI,AL ;将结果从第99位倒着保存到Z段中    INC SI    DEC DI    LOOP A3      ;依次循环将结果保存到Z段    MOV SI,0A4: CMP ZSI,30H    JNZ A5    INC SI    JMP A4      ;从第0位开始判断,看ZSI中的数据是否为0     A5:    LEA DX,ZSI   

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论