第一个程序是自己写的,没有使用字符串,显得不够简洁。
;-----------------------------------------------------------
;实验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) |
浏览次数(744) |
所属类型(汇编作业)
[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) |
浏览次数(747) |
所属类型(汇编作业)
[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) |
浏览次数(770) |
所属类型(汇编作业)
[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) |
浏览次数(827) |
所属类型(汇编作业)
[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) |
浏览次数(784) |
所属类型(汇编作业)
[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) |
浏览次数(698) |
所属类型(汇编作业)
[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) |
浏览次数(739) |
所属类型(汇编作业)
[2015-06-27 09:47] 第11章:检测点
(11.1)写出下面每条指令执行后,ZF、PF、SF等标志位的值。
解:先心算,然后debug中进行验证;注意哪些指令对标志位有影响;最后的mul al,积存入ax中,要以ax为准。
(11.2)写出下面每条指令执行后,ZF、PF、SF、CF、OF等标志位的值。
(11.3)
(1)补全下面的程序,统计F000:0处32个字节中,大小在[32,128]的数据的个数。
mov ax,0f000h mov ds,ax mov bx,0 mov dx,0 mov cx,32 s: mov al,[bx] cmp al,32 jb s0 cmp al...
解:先心算,然后debug中进行验证;注意哪些指令对标志位有影响;最后的mul al,积存入ax中,要以ax为准。
(11.2)写出下面每条指令执行后,ZF、PF、SF、CF、OF等标志位的值。
(11.3)
(1)补全下面的程序,统计F000:0处32个字节中,大小在[32,128]的数据的个数。
mov ax,0f000h mov ds,ax mov bx,0 mov dx,0 mov cx,32 s: mov al,[bx] cmp al,32 jb s0 cmp al...
阅读全文 |
评论次数(0) |
浏览次数(323) |
所属类型(汇编作业)
[2015-06-13 08:50] 课程设计1
一点感想:1、没仔细审题,开始问题被我复杂化了,用实验7的思路去整数据,其实目的只是为了显示,故不用考虑非显存区的布局。
2、过于追求结构紧凑,导致问题很多,精简化对能力的要求很高,稍不注意就会导致寄存器冲突,结构混乱,逻辑硬伤。
3、好多小细节都被忽略了,入dtoc子程序中因为缺少mov dx,0这一句,导致数字列(初第一行的字符串年份外)不能显示3位以上的数据,这个极其隐蔽,卡了很久,直到debug时才被发现。
;-------------------------------------------------------------------------------
;...
2、过于追求结构紧凑,导致问题很多,精简化对能力的要求很高,稍不注意就会导致寄存器冲突,结构混乱,逻辑硬伤。
3、好多小细节都被忽略了,入dtoc子程序中因为缺少mov dx,0这一句,导致数字列(初第一行的字符串年份外)不能显示3位以上的数据,这个极其隐蔽,卡了很久,直到debug时才被发现。
;-------------------------------------------------------------------------------
;...
阅读全文 |
评论次数(0) |
浏览次数(313) |
所属类型(汇编作业)
[2015-06-13 08:41] 实验10:编写子程序
1.显示字符串
;-----------------------------------------------------
;实验10.1:在屏幕的8行3列,用绿色显示data段中的字符串。
;-----------------------------------------------------
assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start: mov dh,8 ;行号
mov dl,3 ;列号
mo...
;-----------------------------------------------------
;实验10.1:在屏幕的8行3列,用绿色显示data段中的字符串。
;-----------------------------------------------------
assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start: mov dh,8 ;行号
mov dl,3 ;列号
mo...
阅读全文 |
评论次数(0) |
浏览次数(315) |
所属类型(汇编作业)