


- [tomato] 正确。 06/15 15:52
- [tomato] 正确。 06/15 15:51
- [tomato] 没问题。 06/12 09:20
- [tomato] 正确。 06/12 09:16
- [tomato] 正确。 06/11 08:28
- [younggay] 答:所能进行的最大转移位移是128位 ============= 不对吧,bx是控制偏移量的, 06/10 17:20
- [tomato] "所能进行的最大转移位移是128位"为什么这么说呢? 06/10 16:54
- [07211002zym] 谢谢您的指导! 06/10 15:50
- [mess] 正确。 06/09 10:01
- [mess] loop指令的执行步骤,上面答案正确,博主继续加油吧~ 06/09 10:00
- [20070410070] 感觉你好厉害! 12/26 22:37
- [07211002zym] 学习要有目标,有信心,有毅力,坚持不懈!小樱桃加油!!! 06/10 21:13
- [07211002zym] 人应该都要活到老学到老,尤其是信息技术更新速度如此的快!所以就算基础不好,也要慢慢的努力学习! 03/03 17:21
[2009-06-15 14:56] 检测点16.1
下面的程序将code段中a处的8个数据累加,结果存储到b处的dword中,补全程序。
完整程序如下:...
完整程序如下:...
阅读全文 |
评论次数(1) |
浏览次数(534) |
所属类型(汇编作业)
[2009-06-15 14:30] 检测点15.1
(2)仔细分析上面程序中的主程序[第269页],看看有什么潜在的问题?
在主程序中,如果在执行设置int 9中断例程的段地址和偏移地址的指令之间发生了键盘中断,则CPU将转去一个错误的地址执行,将发生错误。
找出这样的程序段,改写它们,排除潜在的问题。
答:有两个错误;只要加上cli,sti,就OK了。cli,用于设置IF=0; sti,用于设置IF=1; IF=0的时候,禁止其他的可屏蔽中断。
改写方法:在pop ds:[2]指令后加入一条cli指令,并在mov es:[9*4+2],cs指令后加入一条sti指令即可。...
在主程序中,如果在执行设置int 9中断例程的段地址和偏移地址的指令之间发生了键盘中断,则CPU将转去一个错误的地址执行,将发生错误。
找出这样的程序段,改写它们,排除潜在的问题。
答:有两个错误;只要加上cli,sti,就OK了。cli,用于设置IF=0; sti,用于设置IF=1; IF=0的时候,禁止其他的可屏蔽中断。
改写方法:在pop ds:[2]指令后加入一条cli指令,并在mov es:[9*4+2],cs指令后加入一条sti指令即可。...
阅读全文 |
评论次数(1) |
浏览次数(462) |
所属类型(汇编作业)
[2009-06-11 20:45] 检测点14.2
编程:用加法和移位指令计算(ax)=(ax)*10
提示:(ax)*10=(ax)*2+(ax)*8
完整程序如下:
assume cs:code
code segment
start:
mov ax,1000h
mov bx,ax
shl bx,1 ;(ax)=(ax)*2
mov cl,3
shl ax,cl ;(ax)=(ax)*8
add ax,bx ;(ax)=(ax)*10
mov ...
提示:(ax)*10=(ax)*2+(ax)*8
完整程序如下:
assume cs:code
code segment
start:
mov ax,1000h
mov bx,ax
shl bx,1 ;(ax)=(ax)*2
mov cl,3
shl ax,cl ;(ax)=(ax)*8
add ax,bx ;(ax)=(ax)*10
mov ...
阅读全文 |
评论次数(1) |
浏览次数(518) |
所属类型(汇编作业)
[2009-06-11 18:07] 检测点14.1
1)编程:读取CMOS RAM 的2号单元内容 :
assume cs:code
code segment
start:
mov al,2 ;先将2传给al
out 70h,al ;把2号单元地址“2”送入70h端口
in al,71h ;从71h读出2号单元的内容 ,此时al中装的是当前时间的‘分’。
mov ax,4c00h
int 21h
code ends
end start
(2)编程:向CMOS RAM 的2号单元写入0:
assume cs:code ...
assume cs:code
code segment
start:
mov al,2 ;先将2传给al
out 70h,al ;把2号单元地址“2”送入70h端口
in al,71h ;从71h读出2号单元的内容 ,此时al中装的是当前时间的‘分’。
mov ax,4c00h
int 21h
code ends
end start
(2)编程:向CMOS RAM 的2号单元写入0:
assume cs:code ...
阅读全文 |
评论次数(1) |
浏览次数(531) |
所属类型(汇编作业)
[2009-06-10 21:11] 检测点13.2
判断下面说法的正误:
(1)我们可以编程改变FFFF:0处的指令,使得CPU不去执行bios中的硬件系统检测和初始化程序
答:这种说法错误。因为该内存单元具有‘只读’属性。用debug的e命令试验对FFFF:0单元写入信息和d命令查看得知无效。所以FFFF:0单元是只能读而不能写入的存储单元,所以不能更改其中的内容。
(2)int 19h中断例程,可以由dos提供。
答: 这种说法是错误的。因为int 19h是在DOS启动之前就被执行的中断例程,这里面涉及到一个先后次序的问题,而此次序不能被打乱。...
(1)我们可以编程改变FFFF:0处的指令,使得CPU不去执行bios中的硬件系统检测和初始化程序
答:这种说法错误。因为该内存单元具有‘只读’属性。用debug的e命令试验对FFFF:0单元写入信息和d命令查看得知无效。所以FFFF:0单元是只能读而不能写入的存储单元,所以不能更改其中的内容。
(2)int 19h中断例程,可以由dos提供。
答: 这种说法是错误的。因为int 19h是在DOS启动之前就被执行的中断例程,这里面涉及到一个先后次序的问题,而此次序不能被打乱。...
阅读全文 |
评论次数(1) |
浏览次数(513) |
所属类型(汇编作业)
[2009-06-10 16:21] 检测点13.1
用7ch中断例程完成loop指令的功能。
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset lp
mov ax,0
mov es,ax
mov di,200h
mov cx,offset lpend - offset lp
cld
rep movsb
mov ax,0
mov es,ax
...
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset lp
mov ax,0
mov es,ax
mov di,200h
mov cx,offset lpend - offset lp
cld
rep movsb
mov ax,0
mov es,ax
...
阅读全文 |
评论次数(2) |
浏览次数(560) |
所属类型(汇编作业)
[2009-06-08 22:43] 检测点9.3
补全程序,利用loop指令,实现在内存2000H段中查找第一个值为0的byte,找到后,将它的偏移地址存储在dx中。
assume cs:code
code segment
start:
mov ax,2000h
mov ds,ax
mov bx,0
s:
mov cl,[bx]
mov ch,0
inc cx ;填空内容
inc bx
loop s
ok:
dec bx
mov dx,bx ...
assume cs:code
code segment
start:
mov ax,2000h
mov ds,ax
mov bx,0
s:
mov cl,[bx]
mov ch,0
inc cx ;填空内容
inc bx
loop s
ok:
dec bx
mov dx,bx ...
阅读全文 |
评论次数(2) |
浏览次数(500) |
所属类型(汇编作业)
[2009-06-08 22:30] 检测点9.2
9.2 在内存2000H段中查找第一个值为0的byte,找到后将他的便宜地址存储在dx中,利用jcxz指令。
assume cs:codesg
codesg segment
start:
mov ax,2000h
mov ds,ax
mov bx,0
s: mov cl,[bx] ;填空内容
mov ch,0 ;填空内容
jcxz ok ;填空内容
inc bx ;填空内容
loop s...
assume cs:codesg
codesg segment
start:
mov ax,2000h
mov ds,ax
mov bx,0
s: mov cl,[bx] ;填空内容
mov ch,0 ;填空内容
jcxz ok ;填空内容
inc bx ;填空内容
loop s...
阅读全文 |
评论次数(1) |
浏览次数(465) |
所属类型(汇编作业)
[2009-06-06 23:11] 检测点9.1
(1)若要使jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应该定义哪些数据?
完整程序如下:
assume cs:code,ds:data
data segment
db 0,0,0 (填空内容)
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1] ;段内间接转移
code ends
end start
(2)补全程序,使jmp指令执行后,CS:IP指向程序的第一条指令。
完整程序如下:
assu...
完整程序如下:
assume cs:code,ds:data
data segment
db 0,0,0 (填空内容)
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1] ;段内间接转移
code ends
end start
(2)补全程序,使jmp指令执行后,CS:IP指向程序的第一条指令。
完整程序如下:
assu...
阅读全文 |
评论次数(1) |
浏览次数(449) |
所属类型(汇编作业)
[2009-06-03 10:35] 检测点10.5
(1)下面的程序执行后,ax中的数值为多少?
assume cs:code
stack segment
dw 8 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ds,ax
mov ax,0
call word ptr ds:[0EH]
inc ax
inc ax
inc ax
mov ax,4c...
assume cs:code
stack segment
dw 8 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ds,ax
mov ax,0
call word ptr ds:[0EH]
inc ax
inc ax
inc ax
mov ax,4c...
阅读全文 |
评论次数(1) |
浏览次数(454) |
所属类型(汇编作业)