正在画流程图,稍后附上

;x86汇编_用循环结构编程计算阶乘n!

code segment ;代码段开始

assume cs:code,ds:code ;定义代码段和数据段的段地址都是本段(代码段)的段地址

org 100h;指定程序被载入内存时的起始地址

start: ;程序开始的标号

push cs;将代码段地址压栈

pop ds;从栈中弹出到数据段寄存器,与上句话一起,将代码段的值赋给数据段

push cs;再将代码段地址压栈

pop es;从栈中弹出数据到附加段寄存器

q0:lea dx,tips;q0标号,此处传递tips标号的偏移地址到dx

mov ah,9 ;ah=9

int 21h ;调用21h中断,ah=9时,显示字符串,字符串从ds:dx到一个$符号结束

q1:mov ah,0; ah = 0

int 16h;调用16h中断,ah=0时,从键盘读字符,al为字符码

cmp al,1bh ;将1bh与字符码比较,1bh是esc的字符码

jz exit;如果相等,则跳转到exit标号的位置

cmp al,'0';将al与0的字符码相比

jb q1 ;如果al

cmp al,'8';将al与8的字符码相比

ja q1 ;如果al>'8',跳转到q1标号的位置

mov ah,0eh; ah=0eh

int 10h;调用10h中断,ah=0eh时,显示al表示的字符

sub al,30h;al = al-30h,目的是求出这个字符表示的数值,

or al,al ; al = al | al,与自己作按位或运算,目的是设置标志位

jnz q2 ; 如果结果不是0,也就是说al!=0,则跳转到标号q2的位置

mov ax,1 ; ax = 1

jmp q4 ; 跳转到q4的位置

q2:mov ah,0 ;q2标号,ah=0

mov cx,ax ; cx = ax

mov al,1 ; al = 1

xor dx,dx ; dx与自己异或,结果是dx=0,用异或来清0速度比较快!

q3:mul cx ;q3标号,无符号数相乘,(dx,ax)=cx*ax

loop q3 ;cx=cx-1,如果cx不为0,则继续循环q3标号的操作,

q4:cld ;q4标号 ,方向标志置0

lea di,result ;目的变址寄存器di 设为result标号的偏移地址

add di,2 ; di=di+2

lea bp,table ;基址指针bp设为table标号的偏移地址

mov cx,5 ; cx = 5

q5:xor dx,dx ;q5标号,dx清0

div word ptr [bp] ;ax=(dx,ax)/[bp],求得指定位的值,比如十位百位什么的

or al,30h ;al=al|30h,目的是求这个数的字符,

stosb ; di=al

mov ax,dx ;ax=dx

add bp,2 ;bp=bp+2

loop q5 ;cx=cx-1,如果cx不为0,则继续循环q5标号的操作,

lea dx,result ;dx 设为result标号的偏移地址

mov ah,9 ;ah=9

int 21h ;调用21h中断,ah=9时,显示字符串,字符串从ds:dx到一个$符号结束

jmp q0 ; 跳转到q0标号的位置

exit: ;exit标号

mov ah,4ch ;ah=4ch

int 21h ;调用21h中断,ah=4ch时,表示程序退出

;以下内容是预先准备的数据

tips db 'please input a number(0-8),esc to quit: ',0dh,0ah,'$' ;

table dw 10000,1000,100,10,1

result db '!=00000',0dh,0ah,'$'

code ends ;代码段结束

end start

汇编编程计算机流程图,汇编程序怎么做流程图?相关推荐

  1. word流程图整体怎么拆分_word流程图-不会做流程图?这三种方法超级简单!

    在平时的办公过程中,我们一定是要会做流程图的,因为很多地方都需要使用到流程图,下面小编教大家三种方法做流程图,非常简单,一看就会! 一,在Word中制作流程图 1,新建画布 首先点击"插入& ...

  2. 计算机老师能叫少儿编程,少儿编程教师适合哪些人做?需要具备什么能力?

    少儿编程教师适合哪些人做?需要具备什么能力?严格上来讲只要是对孩子有爱心,愿意从事少儿教育行业,就适合做少儿编程教师.可能一般人会认为,少儿编程教师需要具备极强的编程能力.其实不然,少儿编程教师只需要 ...

  3. 怎么用思维导图做流程图|简单好看的流程图画法

    有朋友询问流程图和思维导图有什么区别?简单好看的流程图怎么制作? 其实流程图就是属于思维导图的一种,只是流程图侧重于表现事物之间的先后关系.那么怎么做流程图呢?其实很简单,这里小编就给大家展示一下[树 ...

  4. ppt流程图按步骤链接_ppt怎么做流程图 怎样用PPT制作流程图

    在制作流程图的过程当中,其实有很多工具都可以制作,比如说word,比如说ppt,而今天小编就来给大家介绍一些如何用ppt制作流程图的方式. ppt怎么做流程图--怎样用PPT制作流程图 1.新建一个P ...

  5. 如何用Word做流程图

    如何用Word做流程图? 在"绘图"工具栏上单击"自选图形/基本形状",可以选择"矩形"或者"圆角矩形"绘制矩形图形制作 ...

  6. c语言简单收银系统程序编码,我有个C语言编写的超市收银系统,请高手修改下,帮做流程图,可追加分...

    我有个C语言编写的超市收银系统,请高手修改下,帮做流程图,可追加分0 #includestruct goods{ char no[8];3char name[20];  float price;  i ...

  7. 如何用Word做流程图?

    如何用Word做流程图? 在"绘图"工具栏上单击"自选图形/基本形状",可以选择"矩形"或者"圆角矩形"绘制矩形图形制作 ...

  8. 绘制流程图技巧:图文演示怎么做流程图

    什么是流程图?顾名思义,流程图就是一张汇总了流动的行程的图纸.为什么是流动的行程呢?我们的日程安排不是提前准备好的吗?但是俗话说的好,计划赶不上变化.我们永远不知道下一秒会发生什么,会不会影响到每个行 ...

  9. 计算机毕业设计、计算机课程设计怎么做?计算机设计1900套来帮你!

    计算机毕业设计.计算机课程设计怎么做?计算机设计1900套来帮你! 人生做什么事都有套路,大学毕业设计.课程设计通常比较简单,大多数都是找个项目做参考,有的人随便抄一抄糊弄一下,只要查重,格式别出错就 ...

最新文章

  1. Statement和PreparedStatement深入学习总结
  2. php滚动公告源码,JavaScript_jquery垂直公告滚动实现代码,复制代码 代码如下: !DOCTYPE - phpStudy...
  3. 聚类算法小记(part2)--谱聚类
  4. SAP Spartacus cms.service.ts getComponentData
  5. asp.net 日期转换
  6. pc端html轮播带滑块,swiper.js简单快速实现轮播滑动(兼容PC端、移动端)
  7. keras 分布式_TensorFlow 2.0正式版官宣!深度集成Keras
  8. Qt界面设计器中的界面预览与程序运行时界面不一样
  9. tomcat 多项目多HOST配置
  10. oracle的会话(session)
  11. 2018年让你的技术学习快人一步!
  12. 软件体系结构期末复习总结
  13. FSM实例——按键消抖及状态检测
  14. Arcgis栅格数据转至GMT支持的.grd格式绘图
  15. php通用补丁,PHP受权验证系统V2.1完整版 带补丁包
  16. 应用于高速计数器的编码器基础知识介绍
  17. 从EBI中ENA数据库下载原始数据accession的详细信息以及序列
  18. PHP的优势是什么?
  19. 【转载】Windows 10 运行 Linux子系统的图形界面程序
  20. 搞笑的chitgpt

热门文章

  1. R语言应用实战系列(三)-智能推荐模型的构建
  2. Keras情感分析(Sentiment Analysis)实战---自然语言处理技术
  3. Linux疑难杂症解决方案100篇(十一)-ubuntu crontab 详细规则及不执行时的解决方法
  4. 【数值分析】微分求积:复化梯形、复化辛浦生
  5. Python爬虫 - 解决动态网页信息抓取问题
  6. C语言-将数字转化为字符串
  7. Python学习之GUI--SQL数据库连接
  8. Python程序全局观--以温度转换为例
  9. numpy.tril详解
  10. python 标准差Std() 参数决定有偏或无偏