giutianxuan

2013.07.03

采纳率:9%    等级:16

已帮助:10480人

正在画流程图,稍后附上 ;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

00分享举报

c语言流程图注释框,求此编程添加注释及流程图相关推荐

  1. linux svn强制注释,svn强制提交时添加注释

    svn强制提交时添加注释 1.  需求 领导要求开发在提交代码时必须添加注释,经过查资料,实验,然后实现领导的要求. 2.  查看资料 参考svn文档,以及网上博客 通过查看资料,一步一步的实现脚本 ...

  2. python中注释的作用_Python函数添加注释的好处

    前面的教程中,我们已经学习了 Python 中的注释方式,单行注释以#开头,进行多行注释时通常用三个单引号'''将注释部分包裹起来. 在函数的定义中,常利用多行注释给函数写文档,称为函数文档.为什么要 ...

  3. VS CODE JSON添加注释报错 为JSON添加注释

    问题描述 在json文件中添加注释后,大面积报错. 解决方案 1.选择JSON 2.选择JSON with Comments后,错误消失

  4. mysql建表语句增加注释_MySQL建表语句+添加注释

    1.建表+注释 CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号', name VARCHAR(200) COMM ...

  5. python中如何快速注释_python中如何快捷添加注释

    本人使用的编辑器是pycharm,有三种注释方式: 1.用 一对""" 括起来要注释的代码块. 2.用一对'''括起来要注释的代码块. 3.选中要注释的代码,按下ctrl ...

  6. Idea中自动注释的缩进(避免添加注释自动到行首)

    如图,打开设置界面,依次选择Editor-Code Style-Java,选择Code Generation,取消Line comment at first column和Block comment ...

  7. 如何为PDF文件添加注释?

    在日常工作中,我们经常接触到各种格式的办公文件,如Word.Excel.PPT和PDF.在阅读文件的过程中,我们可以通过办公软件的注释功能留下自己的观点和看法.众所周知,PDF文件的编辑并不像其他文件 ...

  8. IDEA类和方法自动添加注释

    给类自动添加注释信息 给方法自动添加注释信息 给类自动加上注释 第一步点击File里的Settings先到设置里面去 第二步,在Settings里面按照下图顺序找到设置界面,右边即为设置界面 第三步, ...

  9. excel公式单元格注释_向Excel 2013中的公式和单元格添加注释

    excel公式单元格注释 When entering formulas in Excel, you may want to remind yourself, or someone else, what ...

最新文章

  1. 用树莓派DIY血液检测仪,准确率不输专业设备,成本连十分之一都不到
  2. SAP系统配置常用命令大全
  3. Python 有序字典(OrderedDict)与 普通字典(dict)
  4. hadoopHA自动切换不成功的坑
  5. Vue 父子组件双向绑定传值
  6. python2.7安装scipy_在centOS上离安装Python2.7以及numpy,scipy,matplot,sklearn等
  7. mysql怎么初始化自增值_MySQL 重置自增值
  8. (150)System Verilog仿真结束机制
  9. (转)基于Metronic的Bootstrap开发框架经验总结(6)--对话框及提示框的处理和优化...
  10. mysql事件类型_MySQL binlog中的事件类型
  11. (转贴)正则表达式学习心得体会(1)
  12. qt实现网易云音乐播放器的图片旋转功能(paintevent)
  13. ps无法加载扩展未经正确签署解决方法
  14. 2019年考研篇(2020毕业)
  15. Java验收项目清单_软件验收管理工作内容
  16. 关于查找、搜集市场调查报告的一些网站收集
  17. matlab subs eval,MATLAB里计算表达式的值:subs函数与eval、vpa、double等配合使用
  18. 游戏玩家的“梦想”,ROG Phone 6出圈,双USB-C,还有两个屏幕?
  19. 物流与供应链管理前言
  20. 先进先出(FIFO)页面置换算法 C语言实现

热门文章

  1. VMware vSphere6.0 服务器虚拟化部署安装图解
  2. Java详解去除字符串中空格的方法
  3. three.js 流动线shader实现方式(伪)
  4. 解决IDEA编译乱码�����方案合集(内附JDK下载链接)
  5. go语言socket编程
  6. java面试大厂必考题(2023)
  7. 【精】MySQL免安装版详细教程
  8. 关于 WPC发布了Qi 1.3版本标准
  9. 【大数据笔记】hadoop基础——各组件介绍
  10. Oracle 解析cron定时表达式