
汇编入门
兄dei!
坚信泥沙也能堆出山川。
展开
-
《汇编语言》王爽——第十章,课程设计1
在这个程序中,要用到前10章几乎所有的知识。(书中原话)课程设计的需求:将之前实验7的数据在屏幕上展示出来如图所示: 该图也是我的程序展示图分析:首先需要展示四大块内容,分别是:1.年份(字符串数据,可以直接展示,不需要转化字符串)2.收入(dword数据,需要先转化为字符串,再进行展示)3.雇员(word数据,需要先转化为字符串,再进行展示)4.人均收入(word数据,需要先转化为字...原创 2021-10-16 19:28:28 · 2375 阅读 · 1 评论 -
《汇编语言》王爽——第十章实验10.2 10.3
10.2 解决除法溢出的问题给出的公式:X/N=int(H/N)*65536+[rem(H/N)*65536+L]/N参数:ax存放被除数低16 dx存放被除数高16 cx存放除数分析:*65536相当于进到高16位 rem(H/N)*65536不用算,因为算H/N的时候已经把这个结果算出来了,存放在dx,相当于只要计算H/N和L/H完整代码:assume cs:code,ss:stackstack segmentdw 10 dup(0)stack ends c...原创 2021-10-16 14:28:06 · 703 阅读 · 0 评论 -
《汇编语言》王爽——第十章实验10(1)显示字符串
需求:编写子程序,让其通用实现显示以0结尾的字符串。参数:dh是行,dl是列,cl是颜色属性,ds:si指向字符串首地址分析:1.首先,我们要计算出向显存写入的地址。显存位置:B8000H-B8F9FH算法:(dh-1)*160+dl:就是要写入的偏移地址,而段地址是B800H2.将颜色属性写入寄存器(如dx)的高位地址,低位地址用来存储字符串3.我们要向该位置写入字符串,利用jcxz指令判断最后一个字节是否为0,字符串的字节写入寄存器(如dx)的低位地址.4.完成,返回Ok原创 2021-10-15 18:59:50 · 2196 阅读 · 0 评论 -
《汇编语言》王爽——第九章 实验9
本题是想让我们编写一个程序在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串'welcome to masm'通过阅读分析得知,我们需要将字符串以及颜色属性写入到显示缓存区(显存),运行程序的时候就会自动显示在界面上面。而显存的内存地址是B8000H-BFFFFH之间,也就是说只要向这段空间写入数据都会显示出来。分析:1.要想在屏幕中间显示,我们需要算出地址.由于总共是80列*25行,所以我们要在第11行,12行,13行的中间段写入数据,这样就能显示到中间来了。又因为每行有.原创 2021-10-14 20:13:03 · 4367 阅读 · 0 评论 -
《汇编语言》王爽——第八章 实验7
这次实验是一次总结性的实验,难度也比之前的实验要难。这里我在第一次敲完的时候debug界面报了11个错- -mov 指令不能直接操作两个存储单元的数据——Improper operand type后面调试完成之后程序逻辑出现了问题,而且g命令会卡死发现是dw数据那块的地址出了问题,应该是地址溢出到系统内存去了。后修改之后成功了。上代码:assume cs:codedata segmentdb '1975','1976','1977','1978','1979','1980'原创 2021-10-14 17:30:40 · 1748 阅读 · 1 评论 -
《汇编语言》王爽——第八章8.6小案例
讨论寻址方式的综合应用关于DEC公司的一条记录公司名称:DEC总裁名称:Ken Olsen排 名:137收入:40(亿美元)著名产品:PDP(小型机)将他里面的一些信息进行修改: 排名137改为38 ,收入40加上70,产品改为VAX汇编代码:assume cs:code,ds:datadata segmentdb 'DEC'db 'Ken Olsen'dw 137,40db 'PDP'data endscode se...原创 2021-10-12 18:19:58 · 540 阅读 · 1 评论 -
《汇编语言》王爽——第7章问题7.9
问题7.9:编程,将data段中每个单词的前四个字母改为大写字母assume cs:code,ds:data,ss:stackdata segment db '1.display ' db '2.brows ' db '3.replace ' db '4.modify ' data ends stack segment dw 0,0,0,0,0,0,0,0 stack ends code segment start: .原创 2021-10-11 17:32:41 · 1313 阅读 · 0 评论