求大神帮忙写一下流程图

舉杯邀酒敬孤獨 2019-06-19 07:36:40
DATAS SEGMENT
STRING DB 49,0,50 DUP('$');此处输入数据段代码
STR3 DB 'PLEASE INPUT 16 NUMBERS IN 1 OR 0:',0DH,0AH,'$';
STR1 db 0dh,0ah,'ITS BCD CODE RESULT IS:',0dh,0ah,'$';
NUM DW 2 DUP(0);
STR2 DB 0DH,0AH,'YOUR NUMBER IS BIGGER THAN 9999 !!!',0DH,0AH,'$';
DATAS ENDS
STACKS SEGMENT
DW 100 DUP(0);
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
;字符串输入
MOV AX,DATAS
MOV DS,AX
LEA DX,STR3
MOV AH,09H;
INT 21H
LEA DX,STRING
MOV AH,0AH;
INT 21H;
MOV CL,STRING+1;
XOR CH,CH
ADD DX,CX;
MOV BX,DX;
MOV BYTE PTR[BX+2],'$';
;ascll转数字
MOV BX,2;
MOV SI,2;
XOR AX,AX;
XOR DX,DX;
XOR CX,CX
LEA DI,NUM;
FIND:MOV CL,[SI];
INC SI
CMP CL,'$';
JE NEXT2;
SUB CL,30H;
MUL BX;
XOR DX,DX;
ADD AX,CX;
JMP FIND;
NEXT2:
MOV [DI],AX;
INC DI;
LEA SI,NUM;
MOV AX,[SI]
CMP AX,9999;
JBE NEXT7
LEA DX,STR2;
MOV AH,09H;
INT 21H;
MOV AH,4CH;
INT 21H
NEXT7:
LEA DX,STR1;
MOV AH,09H;
INT 21H;
CALL DO
MOV AH,4CH;
INT 21H;
;把此数字转化为十进制码
DO:
MOV AX,[SI]
MOV BX,10;
MOV CX,0;
D_LOOP1:
XOR DX,DX;
DIV BX
PUSH DX;
INC CX;
CMP AX,0;
JNZ D_LOOP1;
D_LOOP5:
MOV DI,CX;
;显示一个BCD码
DO1:
POP AX;
MOV BX,2;
MOV CX,0;
D_LOOP3:
XOR DX,DX;
DIV BX
PUSH DX;
INC CX;
CMP AX,0;
JNZ D_LOOP3;
MOV AX,4;
SUB AX,CX;
MOV BX,CX;
MOV CX,AX;
;规格化BCD码,使他们都是4位的;
PRE1:
MOV DL,30H;
MOV AH,2;
INT 21H;
LOOP PRE1;
MOV CX,BX;
D_LOOP4:
pop DX;
ADD DL,30H;
MOV AH,2;
INT 21H;
LOOP D_LOOP4;
MOV DL,' ';
MOV AH,2;
INT 21H;
MOV CX,DI;
LOOP D_LOOP5;
RET;
CODES ENDS
END START
求大神帮忙写一下这个程序的流程图
...全文
60 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
大神们帮帮忙吗?

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧