"在int16h中断例程中,一定有设置IF=1的指令。"这种说法对吗?
我觉得对的,当键盘缓冲区为空时,int16h会将IF设为1等待用户输入....
- [anwu00] 写反了,最小为1001H,最大为2000H 05/10 11:04
- [crazyman] 博主确实好久不见了。 这里是一个开始,希望更多人都能从这里明确方向,开始自己的计算机之路。 08/16 14:55
- [游客] 你那个循环3FH错了 应该是循环40H 因为是添入0-63 就是添64次 08/02 17:27
- [游客] 我猜是因为2000:0000这段是给当成了一段栈寄存器使用了 所以一些数据会往里写入 写入的数据有的 07/29 23:00
- [游客] 2^N=寻址能力 N是总线宽度 算出的能力是B为单位 比如宽度13的CPU 2^13=8192 07/29 22:56
- [游客] 恩,有道理 04/08 12:25
- [atel] 那主程序我测试过的,可以显示的.但是加载到了软盘就不行了. 04/06 22:36
- [wdm] 没有错误啊。 我试了,运行ok的! 04/06 18:17
- [wdm] 说明程序还是有问题哟。 建议你一点一点的来做,先做一显示功能选项的界面吧。 然后在一点点的进行功 04/06 18:10
- [atel] 有什么错误? 04/04 21:33
[2008-03-25 16:56] 检测点17.1
阅读全文 |
评论次数(1) |
浏览次数(935) |
所属类型(汇编作业)
[2008-03-24 14:26] 检测点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
add b,ax
inc s...
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
add b,ax
inc s...
阅读全文 |
评论次数(2) |
浏览次数(596) |
所属类型(汇编作业)
[2008-03-24 14:08] 检测点16.1
下面的程序将CODE段中a处的8个数据累加,结果存储到B处的dword中,补全程序。
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 _____,ax cs:[16]
adc _____,0 cs:[18]
add si,_____ 2
loop s
mov ax,4c00h
...
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 _____,ax cs:[16]
adc _____,0 cs:[18]
add si,_____ 2
loop s
mov ax,4c00h
...
阅读全文 |
评论次数(1) |
浏览次数(613) |
所属类型(汇编作业)
[2008-03-23 14:04] 检测题15.1
(1)仔细分析一下上面的int9中断例程,看看是否可以精简一下?
其实在我们的int9中断例程中,模拟int指令调用原int9中断例程的程序段是可以精简的,因为在进入中
断例程后,IF和TF都已经置0,没有必要再进行设置了.对于程序段:
pushf
pushf
pop ax
and ah,11111100b
push ax
popf
call dword ptr ds:[0]
可以精简为:
________________pushf
________________call dword ptr ds:[0]
两条指令.
(2)仔细分析上面...
其实在我们的int9中断例程中,模拟int指令调用原int9中断例程的程序段是可以精简的,因为在进入中
断例程后,IF和TF都已经置0,没有必要再进行设置了.对于程序段:
pushf
pushf
pop ax
and ah,11111100b
push ax
popf
call dword ptr ds:[0]
可以精简为:
________________pushf
________________call dword ptr ds:[0]
两条指令.
(2)仔细分析上面...
阅读全文 |
评论次数(2) |
浏览次数(662) |
所属类型(汇编作业)
[2008-03-22 22:24] 检测点14.2
编程:用加法指令和移位指令计算(ax)=(ax)*10
assume cs:code
code segment
start: mov bx,ax
shl ax,1
mov cl,3
shl bx,cl
add ax,bx
mov ax,4c00h
int 21h
code ends
end start
考虑到进位把这题重新做了一下。如下:
assume cs:code
code segment
start: mov bx,ax
mov dx,0
...
assume cs:code
code segment
start: mov bx,ax
shl ax,1
mov cl,3
shl bx,cl
add ax,bx
mov ax,4c00h
int 21h
code ends
end start
考虑到进位把这题重新做了一下。如下:
assume cs:code
code segment
start: mov bx,ax
mov dx,0
...
阅读全文 |
评论次数(1) |
浏览次数(406) |
所属类型(汇编作业)
[2008-03-22 21:56] 检测点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
out 71h,al...
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
out 71h,al...
阅读全文 |
评论次数(1) |
浏览次数(292) |
所属类型(汇编作业)
[2008-03-21 13:37] 检测点13.2
判断下面说法的正误:
(1)我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初试化程序.
此说法错误,FFFF:0为ROM所提供,不可改变.
(2)int19H中断例程,可以由DOS提供.
此说法错误,int19h乃用作操作系统引导,在运行int19h前DOS无法引导,DOS怎么可能提供int19h呢....
(1)我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初试化程序.
此说法错误,FFFF:0为ROM所提供,不可改变.
(2)int19H中断例程,可以由DOS提供.
此说法错误,int19h乃用作操作系统引导,在运行int19h前DOS无法引导,DOS怎么可能提供int19h呢....
阅读全文 |
评论次数(1) |
浏览次数(327) |
所属类型(汇编作业)
[2008-03-21 11:08] 检测点13.1
(1)在上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行最大转移位移
是多少?32768
(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
mov ds,ax
mov si,0
mov ax,...
是多少?32768
(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
mov ds,ax
mov si,0
mov ax,...
阅读全文 |
评论次数(4) |
浏览次数(272) |
所属类型(汇编作业)
[2008-03-20 11: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号中断源对应的中断处理程序入口的偏移地址的内存单元地址为:_____.0000:(4*N)
存储N号中断源对应的中断处理程序入口的段地址的内存单元地址为:______.0000:(4*N+2)...
0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00
则,3号中断源对应的中断处理程序的入口地址为:________. 0070:018B
(2)存储N号中断源对应的中断处理程序入口的偏移地址的内存单元地址为:_____.0000:(4*N)
存储N号中断源对应的中断处理程序入口的段地址的内存单元地址为:______.0000:(4*N+2)...
阅读全文 |
评论次数(3) |
浏览次数(278) |
所属类型(汇编作业)
[2008-03-19 21:45] 检测点11.4
下面的程序执行后:(ax)=? 69
mov ax,0
push ax
popf
mov ax,0fff0h
add ax,0010h
pushf
pop ax
and al,11000101b
and ah,00001000b...
mov ax,0
push ax
popf
mov ax,0fff0h
add ax,0010h
pushf
pop ax
and al,11000101b
and ah,00001000b...
阅读全文 |
评论次数(2) |
浏览次数(279) |
所属类型(汇编作业)