汇编网首页登录博客注册
1160321430的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  有时候,自己对自己的遗失不曾发觉,而现在,我发觉时,时光已过20载,人的生命很短暂,留给我的已不多,自己心中的那盏灯,还需自己去点亮。
  • 『姓名』:
  • 『性别』:保密『发送消息
  • 个人说明:
  • 详细信息『加为好友』
学习动态
最新留言
友情链接

[2014-04-24 20:25] 一个操作系统的实现_十分钟完成的操作系统

点击查看原图
步骤:        1.编辑器(例如记事本)写入操作系统启动代码,保存为后缀名为.asm的文件格式
        2.安装一款虚拟机软件以wm为例,新建一个虚拟机,注意操作系统与版本都选择其他,创建的最后一步选择[自定义硬件],
进入后选择[添加],选择[软盘驱动器],接着[创建空软盘映像],在虚拟机根目录下任意创建一个后缀名为.img或者.flg的映像文件
(可以新建文本文档,更改后缀名),选中保存即可。创建成功后到根目录下可以看到这个文件的大小为1074560字节即1.44M
        3.利用汇编编译器NASM编译:>nasm *.asm -o *.bin(其中*号分别代表汇编文件名和希望生成的bin文件名) ...
阅读全文 | 评论次数(0) | 浏览次数(630) | 所属类型(构建OS)

[2014-04-20 21:14] 研究实验1_搭建一个精简的C语言开发环境(包含部分经典的前言)

综合研究: 
    在这部分内容中,将启示我们如何进行独立研究和深度思考(一定要注意这一点,相应的调整自己的学习思想)。同时使我们: 
        (1)认识到汇编语言对于深入理解其他领域知识的重要性。 
        (2)对前面所学习的汇编语言知识进行融会。 
        (3)对用研究的方法进行学习进行体验。 

研究实验1_搭建一个精简的C语言开发环境: 
在运行过程中如果需要使用TC 2.0中的相关文件,就会出现文件找不到的错误,我们根据提示信息,就可以知道 
找不到的是哪个文件,也就可能分析出这个文件是干什么用的。 

1.缺少目标文件cos.obj...
阅读全文 | 评论次数(0) | 浏览次数(605) | 所属类型(汇编作业)

[2014-04-20 21:12] 课程设计二--占位

先做完研究实验,再看看《自己动手写操作系统》和《30天自制操作系统》——需要用到虚拟机和软盘,了解完关于虚拟机和虚拟软盘的相关知识后再来挑战课设二。...
阅读全文 | 评论次数(1) | 浏览次数(867) | 所属类型(汇编作业)

[2014-04-18 21:29] 实验十六_编写包含多个功能子程序的中断例程

安装一个新的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}

分析:
首先:搭建框架:
        
        int 7ch例程安装

        设置中断向量表
        
        程序返回
int7:
        寄存器入栈

        入口地址直接定值,sub 1、2、3、4

        寄存器出栈
int7e...
阅读全文 | 评论次数(0) | 浏览次数(621) | 所属类型(汇编作业)

[2014-04-18 21:00] 一个想了好几天的问题——关于8086cpu自己编写9号中断不能单步的问题

在《汇编语言》第十五章中我们可能遇到这样的问题:程序运行正确,但是debug单步调试,却无法运行
修改int 9h中断例程入口地址的指令,虚拟模式下,debug提示指令无效,而在实模式下,则程序卡死。
这里我的看法如下:因为我们单步的时候,当设置9号中断偏移地址的指令执行后,这时段地址还没有进行相应
的设置,而单步键入命令(如:t命令)的时候程序要调用键盘中断程序,这就导致程序转去一个错误的地址
执行程序,这就造成了一种假象—程序卡死,其实这时只是键盘中断的入口地址不正确,导致键入的字符失去
响应,这样的话,如果我们要用debug调试程序,就需要用g命令跳过设置int 9中断入口地址...
阅读全文 | 评论次数(0) | 浏览次数(602) | 所属类型(疑惑:思考)

[2014-04-17 18:38] 实验十五_安装新的int 9中断例程

点击查看原图
;安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不在松开,
;    如果松开,就显示满屏幕的“A”;其他的键照常处理。
;提示:按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码称为断码。
;    断码 = 通码 + 80h。
assume cs:code
code segment
start:  mov ax,cs
        mov ds,ax
        mov si,offset int9;ds:si指向源地址
        mov ax,0
        mov es,ax
        mov di,204h;es:di指向目的地址
        mov cx,offset int9end ...
阅读全文 | 评论次数(0) | 浏览次数(586) | 所属类型(汇编作业)

[2014-04-13 15:50] 实验十四_访问CMOS RAM

;编程:以“年/月/日 时:分:秒”的格式,显示当前的日期,时间。
;注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他的单元写入内容,否则将引起一些系统错误。
assume cs:code,ds:data
data segment
  db '00/00/00/ 00:00:00','$'
data ends
code segment
  index_cmostime:db 9,8,7,4,2,0;存储cmos ram中存放时间信息的单元编号。
  index_datatime:db 0,3,6,10,13,16;data数据段中每个时间信息的...
阅读全文 | 评论次数(0) | 浏览次数(578) | 所属类型(汇编作业)

[2014-04-13 13:13] 实验十三_编写、应用中断例程_ 3

;下面的程序,分别在屏幕的第2、4、6、8行显示四句英文诗,补全程序。
;完成后编译运行,体会其中的编程思想。
assume cs:code
code segment
  s1:db 'Good,better,beat,','$'
  s2:db 'Never let it rest,','$'
  s3:db 'Till good is better,','$'
  s4:db 'And better,best.','$'
  s:dw offset s1,offset s2,offset s3,offset s4
  row:db 2,4,6,8
  
  start...
阅读全文 | 评论次数(0) | 浏览次数(596) | 所属类型(汇编作业)

[2014-04-12 21:58] 实验十三_编写、应用中断例程_2 总结

总结:
遇到的问题:无法显示字符串"!!!!!!(80个)"
解决方法:用测试程序调试,发现调用int 7ch中断例程后程序的指向不正确
    找到以下逻辑错误(非语法错误),都是中断例程安装时的问题:
        1.mov si,sub_loop 忘了offset操作符,反汇编了一下发现有无操作符offset对生成的机器码没有影响,
    程序照样能正确的跑起来.
        2.mov si,200h 应该改为mov di,200h,因为后边用了串传送指令,默认的目的地址在es:[di]中.
收获:   1.编写程序到底是一口气先写完了再添加注释,还是边写边添加注释,我自己的看法是前者节省...
阅读全文 | 评论次数(0) | 浏览次数(575) | 所属类型(实验总结和感悟)

[2014-04-12 21:55] 实验十三_编写、应用中断例程_2

;编写并安装int 7ch中断例程,功能为完成loop指令的功能
;参数:(cx)= 循环次数,(bx)= 位移
;以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int、iret指令执行前后cs、ip和栈中的状态。
;在屏幕中间显示80个‘!’
assume cs:code
code segment
start: mov ax,0b800h
        mov es,ax
        mov di,160*12
        mov bx,offset s - offset se;设置从标号se到s的转移位移
        mov cx,80
   s:  mov byte ptr es:[di],...
阅读全文 | 评论次数(0) | 浏览次数(573) | 所属类型(汇编作业)
『 查看更多文章 』