汇编语言学习(六)课程设计一

这篇博客介绍了作者在汇编语言课程设计中,如何将Power idea公司的数据按照特定格式在屏幕上显示的过程。实验思路包括遍历数据、复制到显示内存、转化和复制数据,以及编写子程序处理数据。遇到的问题包括默认段设置、显示问题和寄存器使用规划。最终实现了实验目标,作者感到成就感满满。
摘要由CSDN通过智能技术生成

本部分为第10章后的课程设计部分。

主要任务是将实验七中的Power idea公司的数据按照下图格式在屏幕上显示出来。

这里写图片描述

实验思路:

1.整个代码的主体是一个遍历21行的循环。

2.对于每行,最重要的工作就是将data部分的值复制到可在屏幕上显示的内存位置。

设定寄存器,data段部分,段地址用ds寄存器,偏移地址用bpsi寄存器。

屏幕显示部分,段地址用es寄存器,偏移地址用di寄存器。

注意每行开始时,需要重新给di赋值,每行结束后,需要对esbpsi进行处理。

3.对于每行要复制的数据,首先将年份复制过来,之后通过调用函数转化和复制剩余数据。

4.编写子程序用于转化数据:

调用之前编写的防溢出函数,反复除以10后加30h入栈,然后出栈存入内存相应位置。

5.一定不能忘记,每个字占两个字单元,第一个字节存ASCII码,第二个字节存属性。

出现过的问题:

1.似乎使用[bp]默认的是ss:[bp],所以最好加上ds:[bp]

2.按理说应该是从B8000h内存就可以显示,但是实际实验的时候B8168h都显示不出来。当时不知道出错原因,调试了很久……现在猜想可能是调试的时候按下回车键,导致往后退了几行。

3.另外寄存器比较少,所以需要提前规划好寄存器的使用。

代码为:
assume cs:code,ds:data,ss:stack
data segment
   year    db '1975','1976','1977','1978',
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值