第一个程序是自己写的,没有使用字符串,显得不够简洁。
;-----------------------------------------------------------
;实验14:以“年/月/日 时:分:秒“的格式,显示当前的日期、时间。
;思路:直接读取CMOS中的端口号,调用子程序,单独打印显示符。
;-----------------------------------------------------------
assume cs:code
code segment
mov ax,0b800H
mov ds,ax
mov di,1...
- [iamalian] :) 02/09 22:50
- [mess] 答案没问题~ 02/03 14:08
- [starrynight] 其实应该多一点珍惜 继续学习啊,呵呵,欢迎一下... 05/06 20:42
- [iamalian] 谢谢楼上的关注,希望共同进步! 关于笑话,有的话,一定给大家共享:) 05/05 21:21
- [younggay] 哈哈哈,博主的笑话有意思,让我想起了自己的大学上高数的点点滴滴。 等你回来在给大家讲笑话。 04/03 11:12
- [iamalian] 不好意思,是乱码,符号>表示下一步 03/31 15:21
- [游客] 里面的符号,就是那个圈里面有个R的是虾米意思? 03/31 13:45
- [iamalian] 多谢楼上的指教,有更详细的资料出处么? 03/31 11:55
- [younggay] 但在虚拟8086模式下直接运行程序时其结果仍然是全盘复制(这点有待高手解答)。 -------- 03/31 10:34
- [younggay] 将mov cx, cx改为sub cx,5(认为印刷错误) ================= 03/31 10:30
[2015-07-08 22:52] 第14章:端口
阅读全文 |
评论次数(0) |
浏览次数(736) |
所属类型(汇编作业)
[2015-07-08 22:49] 第14章:端口
;----------------------------------------------
;检测点14.1:编程,读取CMOS RAM的2号单元的内容。
; 编程,向CMOS RAM的2号单元写入0。
;----------------------------------------------
assume cs:code
code segment
;读取
mov al,2
out 70H,al
in al,71H
;写入
mov al,2
out 70H,al
mov al,0
out 71H,al
i...
;检测点14.1:编程,读取CMOS RAM的2号单元的内容。
; 编程,向CMOS RAM的2号单元写入0。
;----------------------------------------------
assume cs:code
code segment
;读取
mov al,2
out 70H,al
in al,71H
;写入
mov al,2
out 70H,al
mov al,0
out 71H,al
i...
阅读全文 |
评论次数(0) |
浏览次数(737) |
所属类型(汇编作业)
[2015-07-08 22:47] 第14章:端口
一、端口
三种芯片:接口卡(如网卡显卡)、主板上(如软驱硬驱)、其他芯片(如CMOS)。
共同点:和CPU的总线相连;CPU通过控制总线向芯片发出端口读写命令。
端口地址:CPU将芯片内部的寄存器都当作端口,对它们进行统一编址,从而建立了一个统一的端口地址空间。
CPU直接读写范围:CPU内部寄存器、内存单元、端口。
二、端口读写
范围:端口地址通过地址总线传送,最多有64KB个不同端口,地址范围为0~65535。
CPU访问端口:CPU通过地址总线将地址信息发出→通过控制总线发出端口读命令→端口所在的芯片将选中的端口数据通过数据总线送入CPU。
in/out指令:①8位端...
三种芯片:接口卡(如网卡显卡)、主板上(如软驱硬驱)、其他芯片(如CMOS)。
共同点:和CPU的总线相连;CPU通过控制总线向芯片发出端口读写命令。
端口地址:CPU将芯片内部的寄存器都当作端口,对它们进行统一编址,从而建立了一个统一的端口地址空间。
CPU直接读写范围:CPU内部寄存器、内存单元、端口。
二、端口读写
范围:端口地址通过地址总线传送,最多有64KB个不同端口,地址范围为0~65535。
CPU访问端口:CPU通过地址总线将地址信息发出→通过控制总线发出端口读命令→端口所在的芯片将选中的端口数据通过数据总线送入CPU。
in/out指令:①8位端...
阅读全文 |
评论次数(0) |
浏览次数(765) |
所属类型(学习笔记)
[2015-07-06 23:43] 第13章:实验13
;----------------------------------------------------------
;实验13:(1)编写并安装7cH中断例程,显示一个用0结束的字符串。
;----------------------------------------------------------
assume cs:code
code segment
mov ax,cs
mov ds,ax
mov si,offset showstr ;中断源地址
mov ax,0
mov es,ax
mov di,200H ;0:200 ...
;实验13:(1)编写并安装7cH中断例程,显示一个用0结束的字符串。
;----------------------------------------------------------
assume cs:code
code segment
mov ax,cs
mov ds,ax
mov si,offset showstr ;中断源地址
mov ax,0
mov es,ax
mov di,200H ;0:200 ...
阅读全文 |
评论次数(0) |
浏览次数(759) |
所属类型(汇编作业)
[2015-07-06 23:41] 第13章:检测点
(13.1)
(1)在上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?
答:题中用BX存放位移,作为16位有符号数,其取值范围为-32768~32767,且题中是向前转移,则BX是负值,所以其最大转移位移是-32768(即向前转移32768)。
(2)用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。应用举例:在屏幕的第12行,显示data段中以0结尾的字符串。
assume cs:code
data segment
db 'conversation',0
dat...
(1)在上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?
答:题中用BX存放位移,作为16位有符号数,其取值范围为-32768~32767,且题中是向前转移,则BX是负值,所以其最大转移位移是-32768(即向前转移32768)。
(2)用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。应用举例:在屏幕的第12行,显示data段中以0结尾的字符串。
assume cs:code
data segment
db 'conversation',0
dat...
阅读全文 |
评论次数(0) |
浏览次数(805) |
所属类型(汇编作业)
[2015-07-06 23:38] 第13章:int指令
一、int指令
功能:执行int n指令,相当于引发一个n号中断的中断过程。
中断例程:系统将一些具有一定功能的子程序,以中断例程的方式提供给应用程序。
实质:int n/iret和call/ret很相似,都是调用一段程序;编写的过程要避免寄存器冲突。
栈:可以在中断例程中修改栈中数据,从而改变主程序的执行顺序。
二、BIOS和DOS
BIOS:①硬件系统的检测和初始化程序;②外部中断和内部中断的中断过程;③用于对硬件设备进行I/O操作的中断例程;④其他和硬件系统相关的中断例程。
安装过程:开机后从FFFF:0执行程序(跳转到BIOS的①)→建立BIOS的中断向量(中断例程固...
功能:执行int n指令,相当于引发一个n号中断的中断过程。
中断例程:系统将一些具有一定功能的子程序,以中断例程的方式提供给应用程序。
实质:int n/iret和call/ret很相似,都是调用一段程序;编写的过程要避免寄存器冲突。
栈:可以在中断例程中修改栈中数据,从而改变主程序的执行顺序。
二、BIOS和DOS
BIOS:①硬件系统的检测和初始化程序;②外部中断和内部中断的中断过程;③用于对硬件设备进行I/O操作的中断例程;④其他和硬件系统相关的中断例程。
安装过程:开机后从FFFF:0执行程序(跳转到BIOS的①)→建立BIOS的中断向量(中断例程固...
阅读全文 |
评论次数(0) |
浏览次数(767) |
所属类型(学习笔记)
[2015-07-02 14:18] 实验12:编写0号中断的处理程序
;-----------------------------------------------------------
;实验12:编写0号中断的处理程序,使得在除法溢出发生时,在屏幕
;中间显示字符串“divide error!“,然后返回DOS。
;------------------------------------------------------------
assume cs:code
code segment
;将中断代码送入内存
start: mov ax,cs
mov ds,ax
mov si,offset do0 ;中断代码...
;实验12:编写0号中断的处理程序,使得在除法溢出发生时,在屏幕
;中间显示字符串“divide error!“,然后返回DOS。
;------------------------------------------------------------
assume cs:code
code segment
;将中断代码送入内存
start: mov ax,cs
mov ds,ax
mov si,offset do0 ;中断代码...
阅读全文 |
评论次数(0) |
浏览次数(774) |
所属类型(汇编作业)
[2015-07-02 14:17] 第12章:检测点
(12.1)
(1)用Debug查看内存,情况如下:0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00,则3号中断源对应的中断处理程序的入口地址为0070:018B。
(2)存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为0:4N,段地址的内存单元的地址为0:4N+2。...
(1)用Debug查看内存,情况如下:0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00,则3号中断源对应的中断处理程序的入口地址为0070:018B。
(2)存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为0:4N,段地址的内存单元的地址为0:4N+2。...
阅读全文 |
评论次数(0) |
浏览次数(683) |
所属类型(汇编作业)
[2015-07-02 14:16] 第12章:内中断
一、基本概念
中断信息:检测从CPU外部或内部产生的一种特殊信息并能立即对此信息进行处理;要求CPU马上进行处理,并向所要进行的该种处理提供了必备的参数的通知信息。
中断:CPU不再接着(刚执行完的指令)向下执行,而是转去处理中断信息。
中断类型码:标识中断信息的来源(中断源),字节型数据,可以表示256种中断信息的来源。
内中断:①除法错误-0;②单步执行-1;③执行into指令-4;④执行int指令-n。
中断处理程序:处理中断信息的程序;根据中断类型码找到对应的中断处理程序。
中断向量表:①中断向量——中断处理程序的入口地址;IP-低地址+CS-高地址。②向量表——中断向量的...
中断信息:检测从CPU外部或内部产生的一种特殊信息并能立即对此信息进行处理;要求CPU马上进行处理,并向所要进行的该种处理提供了必备的参数的通知信息。
中断:CPU不再接着(刚执行完的指令)向下执行,而是转去处理中断信息。
中断类型码:标识中断信息的来源(中断源),字节型数据,可以表示256种中断信息的来源。
内中断:①除法错误-0;②单步执行-1;③执行into指令-4;④执行int指令-n。
中断处理程序:处理中断信息的程序;根据中断类型码找到对应的中断处理程序。
中断向量表:①中断向量——中断处理程序的入口地址;IP-低地址+CS-高地址。②向量表——中断向量的...
阅读全文 |
评论次数(0) |
浏览次数(751) |
所属类型(学习笔记)
[2015-06-27 09:54] 实验11:编写子程序
;----------------------------------------------------------------
;将datasg段中字符串的小写字母转变成大写字母。
;----------------------------------------------------------------
assume cs:codesg
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
...
;将datasg段中字符串的小写字母转变成大写字母。
;----------------------------------------------------------------
assume cs:codesg
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
...
阅读全文 |
评论次数(0) |
浏览次数(730) |
所属类型(汇编作业)
『 查看更多文章 』