![](https://img-blog.csdnimg.cn/20200924100141877.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
汇编
目前主要是王爽汇编的相关内容
NoahBBQ
菜鸡一枚
展开
-
王爽汇编课程设计2(完整代码+虚拟机演示)
终于把完整代码写了,太懒了。assume cs:code,ds:data,ss:stackdata segment db 128 dup(0)data endsstack segment db 128 dup(0)stack endscode segment start: mov ax,stack mov ss,ax mov sp,128 mov bx,offset Boot_end-offset Boo原创 2020-09-26 09:13:28 · 265 阅读 · 0 评论 -
王爽第三版课程设计2(完整演示版 :仅涉及环境配置和操作演示)
想看完整代码的同学可以,再等等我的下一篇博客。本文,结合了百度和哔哩哔哩视频的相关知识,由我整理,录制视频。仅供参靠所有要用到的文件,我都会放在百度云上,但最好大家还是自己亲自去下载,自己摸索下。链接:https://pan.baidu.com/s/16f0zzJtQXCL4zOxI14PsdA提取码:1111首先我们要下载,虚拟机,我用的是 Oracle VM VirtualBox,这个可以从官网上下载:https://www.virtualbox.org/ 用到的镜像文...原创 2020-09-23 20:04:20 · 278 阅读 · 0 评论 -
王爽汇编第三版课程设计2(目前只涉及3,4功能,并且可以在dosbox上演示)
这个是源码的主要来源:https://www.bilibili.com/video/BV1mt411R7Xv?p=258然后我会结合我的实践,给出一下分析。便于大家更好的理解,代码。下面是代码assume cs:code,ds:data,ss:stackdata segment db 256 dup(0)data endsstack segment db 128 dup(0)stack endscode segment start: mov ax,stack原创 2020-09-21 21:16:39 · 330 阅读 · 0 评论 -
王爽汇编第三版17.2(比较技巧和检测点)
先给出程序的代码,再分析。assume cs:code code segmentstart:mov ah,0 int 16h mov ah,1 cmp al,'r' je red cmp al,'g' je green cmp al,'b' je blue jmp sret red:shl ah,1 green:shl ah,1 blue:mov bx,0b800h原创 2020-09-11 21:09:11 · 254 阅读 · 0 评论 -
王爽汇编(第三版)第16章实验16
code segmentstart: push cs pop ds mov ax,0 mov es,ax mov di,0200h mov si, offset setscreen mov cx,offset setscreenend-offset setscreen cld rep movsb ;复制copy.原创 2020-09-10 15:46:49 · 171 阅读 · 0 评论 -
王爽汇编(第三版)第15章实验15
写这篇博客的时候,已经快晚上12点了;至于为什么这个时候写,我也不想,无奈失眠。PS:半个小时解决实验15 安装新的int 9中断例程安装一个新的 int 9中断例程,功能:在DOS下,按下“A”键后,除非不再松开,如果松开,就显示满屏的“A”,其他的键照看处理。提示,按下一个键时产生的扫描称为通码,松开一个键产生的扫描码称为断码。断码=通码+80H这里的程序,其实只要在之前的地方稍微改动下就行了。我简单的分析下:在按下键盘的一个键时(不松开),会产生一个扫描码(通码),此时的通码会被送原创 2020-09-09 01:28:54 · 191 阅读 · 0 评论 -
王爽汇编(第三版)第14章实验14
编程,以“年/月/日 时:分:秒” 的格式,显示当前的日期、时间。注意:cmos ram 中存储者系统的配置信息,除了保存时间信息的单元外,不要想其他单元写入内容,否则将引起一些系统错误。代码如下(为了显而易见,我没有额外精简代码,但实际上代码可以优化,简单优化过的代码放在第二部分)assume cs:codecode segmentstart: mov al,9 out 70h,al in al,71h mov ah,al mov cl,4 shr..原创 2020-09-06 18:54:22 · 194 阅读 · 0 评论 -
王爽汇编(第三版)第13章实验13
(1) 编写并安装 int7ch 中段例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处。参数: (dh)=行号 ,(dl)=列号 ,(cl)=颜色,ds:si指向字符串地址代码如下assume cs:codedata segment db"welcome to masm!",0data endscode segmentstart: mov ax,0 mov es,ax mov di,200h ...原创 2020-09-05 21:26:27 · 396 阅读 · 0 评论 -
王爽汇编(第三版)第12章实验12
这个实验其实没有什么好说的,把前面的几个地方稍微改下,就可以了。不过为了让自己印象深刻些,我还是讲一下。解析:要求:是使得在除法溢出发生时,在屏幕中间显示字符串“divide error!”总共占13个字符(空格什么的都算上去),然后返回到dos。下面我给出代码,代码有注释。assume cs:codecode segmentstart: mov ax,cs mov ds,ax mov si,offset do0 ;获取do0位置的偏移地址 m原创 2020-09-03 21:46:57 · 318 阅读 · 0 评论 -
王爽汇编(第三版)第11章实验11
编写一个子程序,将包含任意字符,以0结尾得小写字母转变成大写字母。小写字母的ascll 是97(a)~122(z),用cmp 等指令 来确定是否为小写字母,然后小写字母转大写字母用 And 指令,大小写差20H(32) 我们用 and al ,1101 1111 就可以转换了。具体代码如下assume cs:codesgdatasg segment db"Beginner's All-purpose Symbolic Instruction Code.",0datasg ends...原创 2020-09-02 08:32:28 · 264 阅读 · 0 评论 -
王爽汇编(第三版)检测点 11.2
首先补充一些知识CF(carry flag):进位标志位 OF(overflow flag):溢出标志位 SF(sign flag):负数标志位 ZF(zero flag):零标志位 PF(parity):奇偶标志位CF是对无符号数进行运算,纪录的进位值或借位值OF是对有符号数会不会产生溢出的标志 同样的SF也是对有符号数操作的。同样一条指令,例如 add al,80H (假设原先al里的值位80H) 那么此时...原创 2020-08-30 10:16:01 · 758 阅读 · 2 评论 -
王爽汇编(第三版)课程设计1(附有解析)
思路是:将所有所需要的数字,以字节(一个字节表示单个数字)的形式写入 es段,再然后从es段中再调用到b800段达到显示的效果,由于给定寄存器少,我就想用栈结构的方式来传递变量;我定义了data 段存放原始数据,开始的表示21年的字符串就不用修改,照搬到es段中,dword类型数据,开始调用除法溢出的部分,把得到余数压入栈中,再循环结束,再出栈就可以把余数倒取写入es段中,从dword类型数据开时,我把每8个字节当成一块区域,存放。然后时wordl类型的数据,一样要调用除法溢出,把dx改为0000h,就一原创 2020-08-29 09:59:54 · 281 阅读 · 0 评论 -
王爽汇编(第三版)第10章实验10(课程设计1单独放另外一个贴)
1.显示字符串这个程序要注意的位置的定位,字符在显存的内存地址=b800:(行数-1)*160+(列数)*2-2 字符属性内存地址在前面的基础上加一assume cs:code, ds:datadata segment db'Welcome to masm!',0data endscode segment start: mov dh,8 mov dl,3 mov cl,2 mov ax,data mov ds,ax mov..原创 2020-08-27 17:06:52 · 174 阅读 · 0 评论 -
王爽汇编(第三版)第九章试验9解析
编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串“welcome to masm!”。已知:内存地址空间中,B8000H~B8FFFH共32KB的空间,为80*25 彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。 显示器可以显示25行,每行80个字符(一个字符两个字节),每个字符可以有256种属性。。。由已知可得:要在屏幕中间显示三行字符串,所在行数分别是 12 13 14 列数我们从33列开始到48列 ;33列对应的单元应该是33*2...原创 2020-08-23 22:23:25 · 271 阅读 · 0 评论 -
王爽汇编(第三版)第8章试验7解析
首先书中给出了一段程序,并且定义好了一些数据。如下代码(以下称已知)assume cs:codesg data segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db '1993','1994','1995' ;以上表示21年的21个字符串原创 2020-08-20 18:01:30 · 289 阅读 · 0 评论 -
王爽汇编(第三版)第7章问题7.9
问题7.9 :汇编,将datasg 段中每个单词的前4个字母改写为大写字母下面是给出的初始代码assume cs:codesg,ss:stacksg,ds:datasgstacksg segment dw 0,0,0,0,0,0,0,0stacksg endsdatasg segment db '1. display ' ;这里是4*16个字节 db '2. brows ' db '3. r...原创 2020-08-18 11:02:24 · 443 阅读 · 0 评论 -
关于dosbox下masm5.0的配置,以及dosbox的屏幕大小调整
首先是关于dosbox的屏幕的调整原先显示的屏幕太小有点不习惯,我们找到dosbox-0.74-3(不同人设置的文件名可能不同,具体看自己的情况)然后在文件的目录里面找到DOSBox 0.74-3 options.bat原创 2020-07-29 23:01:02 · 2215 阅读 · 1 评论