汇编学习之新手上路1+2+3+……+100
来源:互联网 发布:java帮助文档下载 编辑:程序博客网 时间:2024/06/11 04:24
题目:按下面的程序框架编程,使用循环语句计算1+2+3+…+100,并把结果保存在物理地址12345H指向的字存储单元中。
CODES SEGMENT
ASSUME CS:CODES
START:
;此处输入功能实现代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
问题分析
利用loop循环将1+2+3+……+100求和,利用inc将数字加一,这里利用12345H变为1234H: 5H,最终将结果存贮到存储单元12345H中。
代码文档
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
mov ax,0
mov cx,100
mov dx, 1
s: add ax,dx
inc dx
loop s
mov bx,1234H
mov ds, bx
mov ds:[5H],ax
MOV AH,4CHINT 21H
CODES ENDS
END START
调试过程
1、用r 命令查看各寄存器初始值
2、用t 命令逐条执行代码
3、一个循环后用P指令全部执行
4、用d指令查看地址单元字型数据
由“高地址内存单元存放字型数据的高位字节,低地址内存单元
存放字型数据的低位字节“12345H 存储单元存放字型数据为
13BA。
总结与疑惑
1、熟练掌握ASM和dosbox调试。
2、掌握有关知识。
3、调试过程出现过此种现象,纠结了好久但是也没能找出原因,存疑……
心得体会:
刚开始学习汇编语言,虽然感觉它不难,但是做起实验来还是有些眼高手低,一方面DOSBOX和ASM的应用全是自学的,这期间走了好多弯路(可能自己有点笨),所以这里就给出使用教程吧~
1、双击ASM软件进入软件界面:
2、在代码区编写你所需要的代码,这里就是
3、点击保存按钮(不保存运行不了),点击运行按钮运行,运行界面如下之后可以点击调试进入DOSBOX调试,调试界面如下如输入r命令,p命令……(注意在这里有两种调试方法,一是debugger,另外是VC,可在工具>选项里选择,如图所示)
在这次实验中,自己的调试过程出现了bug,bug如图,地址内容竟然没有!!!My God!而且我竟然还不知道原因,截止到博客书写时,真的心塞!如果有大佬看到了,还请给小弟说一下,不胜感激!看来还是要多学习多询问,后天有汇编课的时候要问问老师啦!
- 汇编学习之新手上路1+2+3+……+100
- Jakarta Struts学习之新手上路
- Jakarta Struts学习之新手上路
- driver之新手上路
- 【新手上路】Altium Designe…
- 新手上路之opencv神经网络有监督学习分类
- 新手上路--C语言学习
- 新手上路之主板篇
- OpenGL教程之新手上路
- OpenGL教程之新手上路
- 新手上路必修之道
- OpenGL教程之新手上路
- 数据库之MySQL新手上路
- 新手上路之监听器 笔记
- Java新手上路经验1
- 新手上路,matlab基础(1)
- 新手上路,matlab基础(1)
- 新手上路
- 安装过程
- 设计模式之----简单工厂模式
- 高软实验三报告
- Python3之uuid模块
- 大数据运算
- 汇编学习之新手上路1+2+3+……+100
- Java——单例设计模式中懒汉式并发访问的安全问题
- Java中nextInt()后紧跟nextLine()方法造成的一些问题
- 分组密码加密的几种模式
- 读写锁与自旋锁
- 【广告算法工程师入门 19】机制设计-GFP和GSP下的策略行为与均衡分析
- java内部类的作用
- js获取项目路径
- Linux系统下的管理输入输出、管道、vim、gedit的相关用法