| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 573 人关注过本帖
标题:很简单的一个题,求高手检查批评
取消只看楼主 加入收藏
爱行节列
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-10-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
很简单的一个题,求高手检查批评
原题是这样的:
    求十进制数12678532与21736543之和的程序,并将和以十进制数的形式送屏幕显示。
    编程要求与提示:    [1] 两个加数均以压缩(组合)十进制数形式存放在ADD1和ADD2为首址的存贮器单元。    [2] 和以压缩十进制数的形式存入SUM以下单元。    [3] 将和送到屏幕显示部分功能的实现采用子程序的形式。
这是我编的 STACK SEGMENT STACK
      DB 100H DUP(00)
STACK ENDS
DATA  SEGMENT
ADD1  DB 32H,85H,67H,12H
ADD2  DB 43H,65H,73H,21H
SUM   DB 4 DUP(00)
DATA  ENDS
CODE  SEGMENT
      ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
      MOV AX,DATA
      MOV DS,AX
      MOV ES,AX
      MOV AX,STACK
      MOV SS,AX
      LEA SI,ADD1
      MOV CX,4         ;循环次数4
      CLC      
L1:   MOV AL,ADD1[SI]
      MOV BL,ADD2[SI]
      ADC AL,BL
      DAA
      MOV SUM[SI],AL
      INC SI
      LOOP L1
      MOV CX,4
L2:  MOV AL,SUM[SI+3]
      CALL DISPAL
      DEC SI
      LOOP L2      
DISPAL PROC NEAR       ;显示AL中的十进制数
       PUSH AX
       PUSH CX
       PUSH DX
       PUSH AX
       MOV CL,4        ;AL中的高十六位
       SHR AL,CL
       ADD AL,30H      ;十六进制数变换成ASC码
       MOV AH,02
       MOV DL,AL
       INT 21H         ;显示一位字符
       POP AX
       AND AL,0FH      ;AL中的低十六位
       ADD AL,30H
       MOV AH,02H
       MOV DL,AL
       INT 21H
       POP DX
       POP CX
       POP AX
       RET
DISPAL ENDP
CODE   ENDS
       END START
汇编没有问题,但debug的时候用G指令的结果全是0,有4、5行
搜索更多相关主题的帖子: 子程序 十进制 屏幕 
2012-10-26 20:17
爱行节列
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-10-26
收藏
得分:0 
回复 2楼 有容就大
还是不太对,不过还是谢谢了。已经弄出来了,是小问题。
2012-10-27 12:33
快速回复:很简单的一个题,求高手检查批评
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011973 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved