"在int 16h中断例程中,一定有设置IF=1的指令."这种说法对吗?
答:对,因为int 16h中断随时可能产生,为避免发生错误,CS:IP肯定设置有IF=1....


- [游客] 为什么 mov ax,0001 add ax,ax jmp 2000:0 03/22 23:46
- [fxl] 很好啊 03/13 15:53
- [mess] 正确。 02/20 11:13
- [mess] 不错 ^_^ 02/20 11:13
- [mess] 正确。 02/20 11:12
- [mess] 正确。 02/20 11:12
- [mess] 正确。 02/20 11:11
- [mess] 正确。 02/20 11:11
- [mess] 正确。 02/20 11:10
- [30290754] 回复1楼的同学: 1楼的同学分析得很正确,我又再次分析了,这次单是看源代码进行分析,但是还是放 02/14 15:03
[2010-03-15 18:04] 检测点17.1
阅读全文 |
评论次数(0) |
浏览次数(393) |
所属类型(汇编作业)
[2010-03-14 20:39] 实验16
安装一个新的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}.
答:
assume cs:code
code segment
start:push cs
pop ds
mov ax,0
mov es,ax
mov s...
(1) 清屏;
(2) 设置前景色;
(3) 设置背景色;
(4) 向上滚动一行.
入口参数说明如下.
(1) 用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行;
(2) 对于2、3号功能,用al传送颜色值,(al)∈{0,1,2,3,4,5,6,7}.
答:
assume cs:code
code segment
start:push cs
pop ds
mov ax,0
mov es,ax
mov s...
阅读全文 |
评论次数(0) |
浏览次数(355) |
所属类型(汇编作业)
[2010-03-14 12:05] 检测点16.2
下面的程序将data段中a处的8个数据累加,结果存储到b处的字中,补全程序.
assume cs:code,es:data
data segment
a db 1,2,3,4,5,6,7,8
b dw 0
data ends
code segment
start:_____________ 答:mov ax,data
_____________ mov ds,ax
mov si,0
mov cx,8
s:mov al,a[si]
mov ah,0
...
assume cs:code,es:data
data segment
a db 1,2,3,4,5,6,7,8
b dw 0
data ends
code segment
start:_____________ 答:mov ax,data
_____________ mov ds,ax
mov si,0
mov cx,8
s:mov al,a[si]
mov ah,0
...
阅读全文 |
评论次数(0) |
浏览次数(350) |
所属类型(汇编作业)
[2010-03-14 11:45] 检测点16.1
下面的程序将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,_______ 答:mov ax,a[si]
add ______,ax add word ptr b,ax
adc ______,0 adc word ptr b[2],0
add si,______ ...
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,_______ 答:mov ax,a[si]
add ______,ax add word ptr b,ax
adc ______,0 adc word ptr b[2],0
add si,______ ...
阅读全文 |
评论次数(0) |
浏览次数(348) |
所属类型(汇编作业)
[2010-03-12 14:01] 实验15
安装一个新的int 9中断例程,功能:在DOS下,按下"A"键后,除非不再松开,如果松开,就显示满屏幕的"A"; 其他的键照常处理.
提示,按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码称为断码.断码=通码+80h.
答:
assume cs:code,ss:stack
stack segment
db 128 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,128
mov ax,0
mov es,a...
提示,按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码称为断码.断码=通码+80h.
答:
assume cs:code,ss:stack
stack segment
db 128 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,128
mov ax,0
mov es,a...
阅读全文 |
评论次数(0) |
浏览次数(363) |
所属类型(汇编作业)
[2010-03-12 11:21] 检测点15.1
(1)仔细分析一下上面的int 9中断例程,看看是否可以精简一下?
其实在我们的int 9中断例程中,模拟int指令调用原int 9中断例程的程序段是可以精简的,因为在进入中断例程后,IF和TF都已经置0,没有
必要再进行设置了.对于程序段:
pushf
pushf
pop ax
and ah,11111100b
push ax
popf
call dword ptr ds:[0]
可以精简为:
_________________ 答:pushf
_________________ call dword ptr ds:[0]
...
其实在我们的int 9中断例程中,模拟int指令调用原int 9中断例程的程序段是可以精简的,因为在进入中断例程后,IF和TF都已经置0,没有
必要再进行设置了.对于程序段:
pushf
pushf
pop ax
and ah,11111100b
push ax
popf
call dword ptr ds:[0]
可以精简为:
_________________ 答:pushf
_________________ call dword ptr ds:[0]
...
阅读全文 |
评论次数(0) |
浏览次数(367) |
所属类型(汇编作业)
[2010-03-09 15:25] 实验14
编程,以"年/月/日 时:分:秒"的格式,显示当前的日期、时间.
注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他的单元中写入内容,否则将引起一些系统错误.
答:
assume cs:code
code segment
mov si,0
mov cx,3
mov dh,9
s:mov dl,cl
mov al,dh
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,3...
注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他的单元中写入内容,否则将引起一些系统错误.
答:
assume cs:code
code segment
mov si,0
mov cx,3
mov dh,9
s:mov dl,cl
mov al,dh
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,3...
阅读全文 |
评论次数(0) |
浏览次数(309) |
所属类型(汇编作业)
[2010-03-09 13:33] 检测点14.2
编程,用加法和位移指令计算(ax)=(ax)*10.
提示,(ax)*10=(ax)*2+(ax)*8.
答:
assume cs:code
code segment
mov ax,2 ;设原数为2
mov bx,ax
shl ax,1 ;原数移1位
mov cl,3
shl bx,cl ;原数移3位
add ax,bx ;相加得出结果
code ends
end...
提示,(ax)*10=(ax)*2+(ax)*8.
答:
assume cs:code
code segment
mov ax,2 ;设原数为2
mov bx,ax
shl ax,1 ;原数移1位
mov cl,3
shl bx,cl ;原数移3位
add ax,bx ;相加得出结果
code ends
end...
阅读全文 |
评论次数(0) |
浏览次数(388) |
所属类型(汇编作业)
[2010-03-09 12:49] 检测点14.1
(1)编程,读取CMOS RAM的2号单元的内容.
答:
assume cs:code
code segment
mov al,2
out 70h,al ;将2送入地址端口70h
in al,71h ;再向数据端口71h读取2号单元的数据
mov ax,4c00h
int 21h
code ends
end
(2)编程,向CMOS RAM的2号单元写入0.
答:
assume cs:code
code segment
mov al,2
out 70h,al ;将...
答:
assume cs:code
code segment
mov al,2
out 70h,al ;将2送入地址端口70h
in al,71h ;再向数据端口71h读取2号单元的数据
mov ax,4c00h
int 21h
code ends
end
(2)编程,向CMOS RAM的2号单元写入0.
答:
assume cs:code
code segment
mov al,2
out 70h,al ;将...
阅读全文 |
评论次数(0) |
浏览次数(385) |
所属类型(汇编作业)
[2010-03-08 09:50] 实验13
(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
m...
参数:(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
m...
阅读全文 |
评论次数(0) |
浏览次数(389) |
所属类型(汇编作业)
『 查看更多文章 』