综合研究:
在这部分内容中,将启示我们如何进行独立研究和深度思考(一定要注意这一点,相应的调整自己的学习思想)。同时使我们:
(1)认识到汇编语言对于深入理解其他领域知识的重要性。
(2)对前面所学习的汇编语言知识进行融会。
(3)对用研究的方法进行学习进行体验。
研究实验1_搭建一个精简的C语言开发环境:
在运行过程中如果需要使用TC 2.0中的相关文件,就会出现文件找不到的错误,我们根据提示信息,就可以知道
找不到的是哪个文件,也就可能分析出这个文件是干什么用的。
1.缺少目标文件cos.obj...



- [123lalala] 在哪里看虚拟软盘的知识呢 04/22 21:42
- [1160321430] 迈过了这道坎感觉心里敞亮多了,但是还没有完,还是要想一想是不是有其他的方法可以优化程序使其变得更加简 04/11 20:14
[2014-04-20 21:14] 研究实验1_搭建一个精简的C语言开发环境(包含部分经典的前言)
阅读全文 |
评论次数(0) |
浏览次数(661) |
所属类型(汇编作业)
[2014-04-20 21:12] 课程设计二--占位
先做完研究实验,再看看《自己动手写操作系统》和《30天自制操作系统》——需要用到虚拟机和软盘,了解完关于虚拟机和虚拟软盘的相关知识后再来挑战课设二。...
阅读全文 |
评论次数(1) |
浏览次数(915) |
所属类型(汇编作业)
[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...
提供如下功能子程序:
(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) |
浏览次数(699) |
所属类型(汇编作业)
[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 ...
; 如果松开,就显示满屏幕的“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) |
浏览次数(615) |
所属类型(汇编作业)
[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数据段中每个时间信息的...
;注意: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) |
浏览次数(611) |
所属类型(汇编作业)
[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...
;完成后编译运行,体会其中的编程思想。
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) |
浏览次数(624) |
所属类型(汇编作业)
[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],...
;参数:(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) |
浏览次数(632) |
所属类型(汇编作业)
[2014-04-12 19:07] 实验十三_编写、应用中断例程_ 1
;编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处
;参数:(dh)= 行号,(dl)= 列号,(cl)= 颜色,ds:si指向字符串首地址
;以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int、iret指令执行前后cs、ip和栈中的状态
assume cs:code
data segment
db "welcome to masm!",0
data ends
code segment
start: mov dh,10
mov dl,10
mov cl,2
mov ax,data
mov ds...
;参数:(dh)= 行号,(dl)= 列号,(cl)= 颜色,ds:si指向字符串首地址
;以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int、iret指令执行前后cs、ip和栈中的状态
assume cs:code
data segment
db "welcome to masm!",0
data ends
code segment
start: mov dh,10
mov dl,10
mov cl,2
mov ax,data
mov ds...
阅读全文 |
评论次数(0) |
浏览次数(245) |
所属类型(汇编作业)
[2014-04-12 15:19] 实验十二_编写0号中断处理程序
;编写0号处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“divide error”。然后返回DOS。
;要求:仔细跟踪调试,在理解整个过程之前,不要进行后面的学习。
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset do0;设置ds:si指向源地址
mov ax,0
mov es,ax
mov di,200h;设置es:di指向目的地址
mov cx,offset do0end - offset do0;设置cx为传输长度
cld;cld(clear dire...
;要求:仔细跟踪调试,在理解整个过程之前,不要进行后面的学习。
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset do0;设置ds:si指向源地址
mov ax,0
mov es,ax
mov di,200h;设置es:di指向目的地址
mov cx,offset do0end - offset do0;设置cx为传输长度
cld;cld(clear dire...
阅读全文 |
评论次数(0) |
浏览次数(238) |
所属类型(汇编作业)
[2014-04-11 21:18] 实验十一_编写子程序
;编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母。
;描述如下:
; 名称:letterc
; 功能:将以0结尾的字符串中的小写字母转变成大写字母
; 参数:ds:si指向字符串首地址
assume cs:codesg
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code",0
datasg ends
codesg segment
begin:mov ax,datasg
mov ds,ax
mov si,0
call letterc
m...
;描述如下:
; 名称:letterc
; 功能:将以0结尾的字符串中的小写字母转变成大写字母
; 参数:ds:si指向字符串首地址
assume cs:codesg
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code",0
datasg ends
codesg segment
begin:mov ax,datasg
mov ds,ax
mov si,0
call letterc
m...
阅读全文 |
评论次数(0) |
浏览次数(223) |
所属类型(汇编作业)