- 博客(26)
- 资源 (12)
- 收藏
- 关注
原创 一个操作系统的实现_十分钟完成的操作系统
步骤: 1.编辑器(例如记事本)写入操作系统启动代码,保存为后缀名为.asm的文件格式 2.安装一款虚拟机软件以wm为例,新建一个虚拟机,注意操作系统与版本都选择其他,创建的最后一步选择[自定义硬件], 进入后选择[添加],选择[软盘驱动器],接着[创建空软盘映像],在虚拟机根目录下任意创建一个后缀名为.img或者.flg的映像文件 (可以新建文本文档,更改后缀名)
2014-04-26 19:31:59 1101
原创 研究实验1_搭建一个精简的C语言开发环境(包含部分经典的前言)
研究实验1_搭建一个精简的C语言开发环境(包含部分经典的前言)综合研究: 在这部分内容中,将启示我们如何进行独立研究和深度思考(一定要注意这一点,相应的调整自己的学习思想)。同时使我们: (1)认识到汇编语言对于深入理解其他领域知识的重要性。 (2)对前面所学习的汇编语言知识进行融会。 (3)对用研究的方法进行学习
2014-04-26 19:30:25 737
原创 课程设计二--占位
先做完研究实验,再看看《自己动手写操作系统》和《30天自制操作系统》——需要用到虚拟机和软盘,了解完关于虚拟机和虚拟软盘的相关知识后再来挑战课设二。
2014-04-26 19:28:59 561
原创 实验十六_编写包含多个功能子程序的中断例程
安装一个新的int 7ch中断例程,为显示输出 提供如下功能子程序: (1)清屏。 (2)设置前景色。 (3)设置背景色。 (4)向上滚动一行。 入口参数说明: (1)用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色, 3表示向上滚动一行: (2)对于2、3号功能,用al传送颜色值,(al)属于集合{0,1,2,3,4,5,6,7}
2014-04-26 19:25:52 639
原创 一个想了好几天的问题——关于8086cpu自己编写9号中断不能单步的问题
在《汇编语言》第十五章中我们可能遇到这样的问题:程序运行正确,但是debug单步调试,却无法运行 修改int 9h中断例程入口地址的指令,虚拟模式下,debug提示指令无效,而在实模式下,则程序卡死。 这里我的看法如下:因为我们单步的时候,当设置9号中断偏移地址的指令执行后,这时段地址还没有进行相应 的设置,而单步键入命令(如:t命令)的时候程序要调用键盘中断程序,这就导致程序转去一个
2014-04-26 19:20:57 878
原创 实验十五_安装新的int 9中断例程
;安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不在松开, ; 如果松开,就显示满屏幕的“A”;其他的键照常处理。 ;提示:按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码称为断码。 ; 断码 = 通码 + 80h。 assume cs:code code segment start: mov ax,cs m
2014-04-26 19:19:24 919
原创 实验十四_访问CMOS RAM
编程:以“年/月/日 时:分:秒”的格式,显示当前的日期,时间。 注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他的单元写入内容,否则将引起一些系统错误。 assume cs:code,ds:data data segment db '00/00/00/ 00:00:00','$' data ends code segment
2014-04-26 19:11:31 665
原创 实验十三_编写、应用中断例程_ 3
下面的程序,分别在屏幕的第2、4、6、8行显示四句英文诗,补全程序。 完成后编译运行,体会其中的编程思想。 ;注意区分'内存单元地址'和'内存单元中的数据'两个不同的概念 [bx]表示一个内存单元,它的偏移地址在bx中,比如下面的指令: mov ax,[bx] 表示将一个段地址在ds中,偏移地址在bx中的长度为2字节的字单元的内容送入ax。
2014-04-26 19:08:34 873
原创 实验十三_编写、应用中断例程_2 & 总结
编写并安装int 7ch中断例程,功能为完成loop指令的功能 参数:(cx)= 循环次数,(bx)= 位移 以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int、iret指令执行前后cs、ip和栈中的状态。 在屏幕中间显示80个‘!’ assume cs:code code segment start: mov ax,0b800h mo
2014-04-26 19:05:14 909
原创 实验十三_编写、应用中断例程_ 1
;编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处 ;参数:(dh)= 行号,(dl)= 列号,(cl)= 颜色,ds:si指向字符串首地址 ;以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int、iret指令执行前后cs、ip和栈中的状态
2014-04-26 19:03:35 1076
原创 实验十二_编写0号中断处理程序
;编写0号处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“divide error”。然后返回DOS。 ;要求:仔细跟踪调试,在理解整个过程之前,不要进行后面的学习。 assume cs:code code segment start: mov ax,cs mov ds,ax mov si,offset do0;设置ds:si指向源
2014-04-26 18:58:54 1362
原创 实验十一_编写子程序
编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母。 描述如下: 名称:letterc 功能:将以0结尾的字符串中的小写字母转变成大写字母 参数:ds:si指向字符串首地址 assume cs:codesg datasg segment db "Beginner's All-purpose Sy
2014-04-26 18:56:35 707
原创 课程设计一总结
总结:编程思路:1.写一个读取四个字符串的子程序来读取年份。 2.循环将每个数据(年份除外)转变为字符读到mydata段中,然后调用字符显示子程序来显示 发现和遇到的问题:1、我编写的show_str行列都是从1开始,这和先前提交的作业有些出入,因为题目要求是从0行0列开始 2、
2014-04-26 18:47:15 649
原创 课程设计一
[2014-04-11 19:04] assume cs:codesg ,ds:data ,es:table data segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990',
2014-04-26 18:44:49 519
原创 实验10.3_数值显示拓展_dword型数转变为表示十进制数的字符串
;子程序描述: ;名称:dtoc ;功能:将dword型数转变为表示十进制数的字符串,字符串以0为结尾符。 ;参数:(ax)= dword型数据的低16位 ; (dx)= dword型数据的高16位 ; ds:si指向字符串的首地址 ;返回:无 ;应用举例:编程,将数据1000000以十进制的形式在屏幕的8行3列,用绿色显示出来。 ;在显
2014-04-18 21:54:14 1442
原创 汇编网第六章检测题
汇编网第六章检测题 1、在Intel8086环境下,下列说法合理的是___。 1、 汇编语言程序载入内存后处于64K空间以外的数据和指令将无法使用和执行。 2、 一个数据段命名为data,此标号代表这个数据段在内存中的起始地址。 3、 如果载入的程序没有返回语句,那么当程序代码执行完毕,将继续读取后续内存空间存储的指令到CPU内部作为指令执行下去,直到遇到返回指令为止。
2014-04-18 21:19:54 1443
原创 实验10.3_数值显示
;子程序描述 ;名称:dtoc ;功能:将word型数据转变为表示十进制数的字符串,字符串以0位结尾符。 ;参数:(ax)= word型数据 ; ds:si指向字符串的首地址 ;返回:无 ;应用举例:编程,将数据12666以十进制的形式在屏幕的8行3列,用绿色显示出来。 ;在显示时我们调用本次实验中的第一个子程序show_str ;----------
2014-04-18 21:01:18 617
原创 实验10.2_解决除法溢出的问题
;子程序描述 ;名称:divdw ;功能:进行不会产生溢出的除法运算,被除数为dword型,结果 ;为dword型。 ;参数:(ax)= dword型数据的低16位 ; (dx)= dword型数据的高16位 ; (cx)= 除数 ;返回:(dx)= 结果的高16位,(ax)= 结果的低16位 ; (cx)= 余数 ;应
2014-04-17 19:20:39 761
原创 汇编网第五章测试题目
第五题: 对于如下程序 assume cs:code code segment start:mov ax,code mov ds,ax mov ax,0020h mov es,ax mov bx,0 s:mov al,[bx] mov e
2014-04-13 22:27:30 668
原创 实验10.1_显示字符串
[2014-04-09 20:17] 实验10.1_显示字符串 ;子程序描述 ;名称:show_str ;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串 ;参数:(dh)=行号(取值范围0~24),(dl)=列号(取值范围0~79), ; (cl)=颜色,ds:si指向字符串的首地址 ;应用举例:在屏幕的8行3列,用绿色显示data段中
2014-04-13 20:56:42 904
原创 实验九_根据材料编程
实验9_根据材料编程 assume cs:code,ds:data data segment db "Welcome to masm!",2h,24h,71h;定义要显示的字符串 ;和颜色属性(字符串用单引号,双引号皆可) data ends code segment start: mov ax,data mov
2014-04-13 17:43:48 861
原创 实验七_寻址方式在结构化数据中的应用
[2014-04-09 16:38] 实验七 寻址方式在结构化数据中的应用 assume cs:codesg ,ds:data ,es:table data segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','
2014-04-13 16:29:23 657
原创 集中处理之逻辑问题
1.某班有四位同学,其中的一位恶作剧,但是谁都不承认.A说:不是我;B说:是C;C说:是D;D说:C胡说.已知其中三个人说的是真话,1个人说的是假话.编写程序根据这些信息,找出恶作剧的同学.//book code # include int main(void){ int k,sum; char thisman; for (k=0; k
2014-01-10 19:06:07 723
原创 二叉树的创建。
崇尚简约与原始的思维路线://还原思维的本质,抛弃条条框框的限制,2013年12月5日 23:52:41,夜深了,睡(=-ω-)zzZZ# include # include # include typedef int Status;typedef char TElemType;typedef struct BiTNode{ TElemType data;
2013-12-06 17:03:59 872
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人