在int 16h中断例程中,一定有设置IF=1的指令。这种说法对吗?
答:对。int 16h中断例程的工作过程要循环检测键盘缓冲区中是否有数据,即随时回应键盘输入产生的中断请求。则表明一定有设置IF=1。...
- [游客] 说的有道理。 04/24 20:00
- [linghulg] 谢谢指点!是我粗心了,8个字,应该是16Byte。已经改正。 04/18 10:52
- [tomato] 第一题实验查看结果了吗?是不是有些问题? 04/17 13:59
- [tomato] 正确。 04/17 10:57
- [linghulg] 谢谢指点! 04/15 18:32
- [younggay] 对于你的第(2)中的错误,我引用书上的原话: 原文如下: 在int和out指令中,只能使用ax或 04/15 17:55
- [younggay] 完成要求。 04/15 16:49
- [游客] 完成的不错。 04/15 09:14
- [linghulg] 感谢两位指点!很多东西我没有想到!受教了! 04/07 22:45
- [crazyman] 我觉得,根据题目中给定的那个测试程序来说,s-se必然是一个小于0的数,说明bx在这里是作为一个存放 04/07 21:33
[2009-04-18 11:29] 检测点17.1
阅读全文 |
评论次数(1) |
浏览次数(665) |
所属类型(汇编作业)
[2009-04-16 23:27] 实验十六
;实验十六 编写包含多个功能子程序的中断例程
;安装一个新int 7ch中断例程,为显示输出提供如下子程序。
;(1)清屏
;(2)设置前景色
;(3)设置背景色
;(4)向上滚动一行
;入口参数说明如下:
;(1)用ah寄郹器传递功能号:0清屏,1设置前景色,2设置背景色,3向上滚动一行
;(2)用al传送颜色值,al最大值为7,最小值为0。
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
;=======int7ch中断例程=======
int7ch:...
;安装一个新int 7ch中断例程,为显示输出提供如下子程序。
;(1)清屏
;(2)设置前景色
;(3)设置背景色
;(4)向上滚动一行
;入口参数说明如下:
;(1)用ah寄郹器传递功能号:0清屏,1设置前景色,2设置背景色,3向上滚动一行
;(2)用al传送颜色值,al最大值为7,最小值为0。
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
;=======int7ch中断例程=======
int7ch:...
阅读全文 |
评论次数(1) |
浏览次数(643) |
所属类型(汇编作业)
[2009-04-15 08:35] 检测点16.1、16.2
下面的程序将code段中a处的8个数据累加,结果存储到b处的双字中,补全程序。
assume cs;code
code segment
a dw 1,2,3,4,5,6,7,8
b dd 0
start:mov si,0
mov cx,8
s:mov ax,(a[si])
add cs:[16],ax
adc cs:[18],0
add si,2
loop s
mov ax,4c00h
int 21h
code ends
end start
下面的程序...
assume cs;code
code segment
a dw 1,2,3,4,5,6,7,8
b dd 0
start:mov si,0
mov cx,8
s:mov ax,(a[si])
add cs:[16],ax
adc cs:[18],0
add si,2
loop s
mov ax,4c00h
int 21h
code ends
end start
下面的程序...
阅读全文 |
评论次数(2) |
浏览次数(669) |
所属类型(汇编作业)
[2009-04-14 06:04] 实验十五
;实验十五安装新的int9中断例程。
;按A键松开后用字符A刷屏。
;主线:初始化ss、ds、es->复制代码至0:204处->更新中断向量表->结束
;支线:新int9模块(含刷屏模块)
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start:;初始化ss、ds、es
mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov si,o...
;按A键松开后用字符A刷屏。
;主线:初始化ss、ds、es->复制代码至0:204处->更新中断向量表->结束
;支线:新int9模块(含刷屏模块)
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start:;初始化ss、ds、es
mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov si,o...
阅读全文 |
评论次数(1) |
浏览次数(743) |
所属类型(汇编作业)
[2009-04-10 10:07] 实验十四
编程,以"年/月/日 时:分:秒"的格式,显示当前的日期、时间。
assume cs:code
data segment
db "00/00/00 00:00:00",'$'
data ends
stack segment
dw 16 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,32
mov ax,data
mov ds,ax
mov si,0
;分两次循环将...
assume cs:code
data segment
db "00/00/00 00:00:00",'$'
data ends
stack segment
dw 16 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,32
mov ax,data
mov ds,ax
mov si,0
;分两次循环将...
阅读全文 |
评论次数(1) |
浏览次数(715) |
所属类型(汇编作业)
[2009-04-09 06:46] 检测点14.1、14.2
检测点14.1
(1)编程,读取CMOS RAM的2号单元的内容。
assume cs:code
code segment
start:mov al,2
out 70h,al
in al,71h
mov ax,4c00h
int 21h
code ends
end start
(2)编程,向CMOS RAM的2号单元写入0。
assume cs:code
code segment
start:mov al,2
out 70h,al
mov al,0
...
(1)编程,读取CMOS RAM的2号单元的内容。
assume cs:code
code segment
start:mov al,2
out 70h,al
in al,71h
mov ax,4c00h
int 21h
code ends
end start
(2)编程,向CMOS RAM的2号单元写入0。
assume cs:code
code segment
start:mov al,2
out 70h,al
mov al,0
...
阅读全文 |
评论次数(2) |
浏览次数(716) |
所属类型(汇编作业)
[2009-04-07 22:48] 实验十三
(1)编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处。
参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串首地址。
assume cs:code
code segment
start:;安装do7c中断例程
mov ax,cs
mov ds,ax
mov si,offset do_begin
mov ax,0
mov es,ax
mov di,200h
mov cx,offset do_en...
参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串首地址。
assume cs:code
code segment
start:;安装do7c中断例程
mov ax,cs
mov ds,ax
mov si,offset do_begin
mov ax,0
mov es,ax
mov di,200h
mov cx,offset do_en...
阅读全文 |
评论次数(0) |
浏览次数(485) |
所属类型(汇编作业)
[2009-04-07 10:19] 检测点13.1、13.2
检测点13.1
(1)在上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?
答:由于利用bx储存转移位移,其最大值为-32768或32767。
(2)用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。
应用举例:在屏幕的第12行,显示data段中以0为结尾的字符串。
assume cs:code
data segment
db 'conversation',0
data ends
code segment
start:mov ax,data
...
(1)在上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?
答:由于利用bx储存转移位移,其最大值为-32768或32767。
(2)用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。
应用举例:在屏幕的第12行,显示data段中以0为结尾的字符串。
assume cs:code
data segment
db 'conversation',0
data ends
code segment
start:mov ax,data
...
阅读全文 |
评论次数(3) |
浏览次数(714) |
所属类型(汇编作业)
[2009-04-01 23:41] 实验十二
;实验十二
;编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串
;"divide error!",然后返回到DOS。
;编程步骤:
;第一步:安装do0
;第二步:设置中断向量表
;第三步:do0子程序
assume cs:code
code segment
start:;设置源数据首地址ds:si
mov ax,code
mov ds,ax
mov si,offset do0
;设置目的存放首地址es:di
sub ax,ax
mov es,ax ...
;编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串
;"divide error!",然后返回到DOS。
;编程步骤:
;第一步:安装do0
;第二步:设置中断向量表
;第三步:do0子程序
assume cs:code
code segment
start:;设置源数据首地址ds:si
mov ax,code
mov ds,ax
mov si,offset do0
;设置目的存放首地址es:di
sub ax,ax
mov es,ax ...
阅读全文 |
评论次数(3) |
浏览次数(442) |
所属类型(汇编作业)
[2009-04-01 20:53] 检测点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号中断源对应的中断处理程序入口的偏移地址的内存单元地址为( 4N )。
存储N号中断源对应的中断处理程序入口的段地址的内存单元地址为( 4N+2 )...
0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00
则3号中断源对应的中断处理程序入口地址为( 0070:018B )。
(2)存储N号中断源对应的中断处理程序入口的偏移地址的内存单元地址为( 4N )。
存储N号中断源对应的中断处理程序入口的段地址的内存单元地址为( 4N+2 )...
阅读全文 |
评论次数(1) |
浏览次数(449) |
所属类型(汇编作业)
『 查看更多文章 』