![](https://img-blog.csdnimg.cn/2021052010580022.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
汇编实战
汇编实战
小杰666
小杰玩编程,有趣又有料,jasonz666@qq.com
展开
-
汇编:史上最全注释,王爽汇编语言,课程设计2源码
课程设计2题目见 汇编语言 第四版 作者王爽 p312概述1、vm虚拟机中安装win98se,以下称为win98。2、成功安装系统后,虚拟机添加一个新软盘(需要创建软盘映像.img文件)。3、启动win98系统,将下文源码编译,然后执行程序(需要masm汇编器)。4、关闭win98系统,在虚拟机中,设置软盘为启动盘。5、启动虚拟机,我们自己写的程序就能执行了。如果用两个硬盘,即添加新硬盘代替软盘,然后设新硬盘为启动盘后,启动失败(暂不管此问题)!程序结构软盘:第1扇区存放我们的引导程序,原创 2021-06-21 21:24:58 · 770 阅读 · 0 评论 -
汇编:实验16:安装新的7ch中断例程
中断例程装载程序源码:; 安装新的 7ch 中断例程,实现如下功能的子程序:; 1) 清屏; 2) 设置前景色; 3) 设置背景色; 4) 向上滚动一行; 入口参数:; ah=功能号:0清屏,1前景色,2背景色,3向上滚动一行; 对于1、2号功能,用al传递颜色值,范围0~7的整数assume cs:codecode segmentstart: mov ax,cs mov ds,ax mov si,offset setscreent ; ds:si指向中断例原创 2021-06-16 01:03:29 · 387 阅读 · 0 评论 -
汇编:指令系统总结
指令系统总结:原创 2021-06-11 21:55:38 · 110 阅读 · 0 评论 -
汇编:实验15:安装新的int9中断例程
题目安装一个新的int 9中断例程,功能是在DOS下,按下A键后,除非不松开,否则一松开就显示满屏幕的A。这个程序在win2k的DOS下会有问题,dosbox中执行正常。源码汇编源码:; 实验15; 安装新的int9中断例程; 功能是在DOS下,按下A键,除非一直按住,只要松开就显示满屏幕的A; 此程序在DOS下有问题,在dosbox下执行正常assume cs:codestack segment db 128 dup (0)stack endscode segment原创 2021-06-11 21:53:38 · 419 阅读 · 0 评论 -
汇编:实验14:从CMOS读取并显示时间
从 CMOS RAM 读取时间并显示到屏幕。代码:; 显示CMOS中当前日期时间assume cs:codecode segmentsrc: db 9,8,7,4,2,0 ; 年月日时分秒的地址dst: db 'yy/mm/dd hh:mm:ss',0start: mov ax,cs mov ds,ax mov si,offset src mov di,offset dst mov cx,6s: mov dx,原创 2021-06-11 14:56:00 · 1623 阅读 · 0 评论 -
汇编:实验13三题
1、编写安装7ch号中断例程,显示0结尾的字符串中断例程装载程序:; 8086实模式 中断例程装载程序; 中断号 7ch; 装载位置 0:200hassume cs:codecode segmentstart: mov ax,cs mov ds,ax mov si,offset handler ; ds:si指向中断例程的代码 mov ax,0 mov es,ax mov di,200h ; es:di指向中断例程装载位置 m原创 2021-06-11 01:04:59 · 275 阅读 · 1 评论 -
汇编:实验12:自定义零号中断处理程序
题目自定义0号中断处理程序,使得除法溢出发生时,调用自定义的0号中断处理程序。然后在屏幕中间显示红色字:“divide error!”代码; 自定义0号中断处理程序assume cs:codecode segmentstart: mov ax,cs mov ds,ax mov si,offset do0 ; ds:si指向中断程序代码的开始地址 mov ax,0 mov es,ax mov di,200h ;原创 2021-06-08 17:34:50 · 288 阅读 · 0 评论 -
汇编:8086转移指令汇总
可以修改IP,或者同时修改CS与IP的指令统称为转移指令。因为CS:IP是指令寄存器,比较特殊,且CS无法用其他寄存器直接赋值,如:mov cs,ax。所以需要jmp,call,ret,loop等指令来修改IP或同时修改CS与IP。CS:IP的组合用来实现8086CPU的20位寻址(虽然8086的寄存器是16位的,但8086内部有20位地址加法器)。另外,8086CPU是小端模式。内存高地址存放数据高位,内存低地址存放数据低位。转移指令种类8086转移指令种类:无条件转移指令(如 jmp)原创 2021-06-08 14:33:45 · 2635 阅读 · 0 评论 -
汇编:实验11:字符串中小写转大写
题目写个汇编程序,将以0结尾的字符串中的小写字母转换为大写字母。定义函数 letterc,用于转换,参数 ds:si 指向字符串的首地址。源码汇编源码:; 把字符串中的小写字母转换为大写assume cs:codedata segment db "Beginner's All-purpose Symbolic Instruction Code.",0data endsstack segment dw 8 dup (0)stack endscode segment原创 2021-06-08 13:06:31 · 983 阅读 · 0 评论 -
汇编:实验10三题
1、显示字符串题目:汇编源码:; 实验10.1; 屏幕指定位置显示指定颜色的字符串assume cs:codedata segment db 'Welcome to masm!',0data endsstack segment dw 8 dup (0)stack endscode segmentstart: mov dh,8 ; 行号 0-24 mov dl,3 ; 列号 0-79 mov cl,2原创 2021-06-06 17:02:48 · 130 阅读 · 0 评论 -
汇编:实验9:在屏幕中间显示彩色字符串
题目在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串 welcome to masm!。这里的屏幕指的是,显卡文本模式下的屏幕,屏幕尺寸 80x25,可以显示彩色、高亮、闪烁的ASCII字符。文本模式下一个字符由2个字节组成,即 ASCII+属性 = 2字节。属性字节的格式:内存地址空间中,b8000h~bffffh 共32KB,是80x25彩色字符模式的显示缓冲区。显示缓冲区分位8页,每页4KB,每页80x25=2000个字符,2000x2字节=4KB,共8页x4KB=32KB。汇编程序原创 2021-05-28 12:38:30 · 3116 阅读 · 0 评论 -
汇编:实验7
题目实验7题目:具体数据在源码部分,见下文。汇编源码:; 将每年信息按如下格式填充到table段:; 年份 收入 雇员 人均收入; 4B 空格 4B 空格 2B 空格 2B 空格 (共16字节); '1975' 16 3 ?? ; 计算21年的人均收入assume cs:codedata segment ; 21个 4字节 年份 db '1975','1976原创 2021-05-26 21:09:41 · 164 阅读 · 0 评论 -
汇编:解决Win2k无法安装vm-tools、以及安装MASM汇编器连接器
本文配合极客时间《操作系统实战45讲》,因而学习《汇编第四版》使用Win2k系统。参考前一篇 汇编:8086CPU寻址模式、Debug程序用法。Win2k无法安装vm-tools下载补丁:补丁链接 提取码:5640无法安装vm-tools的错误提示:把下载的补丁iso文件,放入虚拟机光驱:安装补丁:在Win2k系统里,点我的电脑,双击光驱,打开补丁安装程序:一直点下一步,直到点完成,会重启系统。重启Win2k后,就可以装vm-tools了:最后要打开虚拟机的启用原创 2021-05-23 15:31:51 · 268 阅读 · 0 评论 -
汇编:8086CPU寻址模式、Debug程序用法
为了配合《操作系统实战45讲》,还是得重学一下汇编。所以就有了这个系列。本系列文章算是《汇编语言第4版》的笔记,也有自己的一些心得~然后这个系列的文章标题是这样的:汇编:吧啦吧啦吧啦老师的教学思想镇楼:我并不完全赞同这个思想,因为会有客观条件限制。看看计算机的逻辑结构计算机中各类存储器的逻辑连接:把各类存储器看作一个逻辑存储器:8086合成20位地址(8086实模式寻址方式):搭建实验环境《汇编语言》这本书用的是8086CPU的实模式来讲汇编的,然后用DOS系统做实验。可是,D原创 2021-05-21 16:30:25 · 351 阅读 · 0 评论