1:下面的程序执行后,AX中的数值为多少?(注意:用CALL指令的原理来分析,不要在DEBUG中单步跟踪来验证你的结论。对于此程序,在DEBUG中单步跟踪的结果,不能代表CPU的实际执行结果)
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 ...


- [syymren] 哈哈哈哈,犯了个超级大错误 05/04 09:52
- [syymren] .......不要在豆腐里挑刺,哈哈哈,我是抄原书上的题呀 05/04 09:50
- [mouse] 肯定是十六进制的,用十进制表示段地址:偏移地址的呢:-) 05/03 11:59
- [mouse] call far ptr 标号<---->push cs push ip 05/03 11:48
- [mess] call指令的操作步骤,博主再想想 05/03 11:38
- [游客] 第二题的结果也不对。 看来博主对于call和ret指令的理解都还有些问题。在重新看看本章的讲解吧。 05/03 11:37
- [游客] 好像是死循环吧??? ---------- 必然不是死循环。 05/03 11:34
- [游客] 不对啊,兄弟。 05/03 10:41
- [游客] 不对。在想想吧。 05/03 10:40
- [游客] 好像不对哟。 call的时候保存的地址应该是其下面的指令的,否则,你的程序从子程序返回来不又执行c 05/03 10:38
[2008-05-03 10:03] 检测点10.5
阅读全文 |
评论次数(2) |
浏览次数(547) |
所属类型(汇编作业)
[2008-05-03 09:35] 检测点10.4
下面的程序执行后,AX中的数值为多少?
内存地址 机器码 汇编指令
1000:0 b8 00 00 mov ax,6
1000:2 ff d0 call ax
1000:5 40 inc ax
1000:6 mov bp,sp
add ax,[bp]
ax=6...
内存地址 机器码 汇编指令
1000:0 b8 00 00 mov ax,6
1000:2 ff d0 call ax
1000:5 40 inc ax
1000:6 mov bp,sp
add ax,[bp]
ax=6...
阅读全文 |
评论次数(2) |
浏览次数(493) |
所属类型(汇编作业)
[2008-05-03 09:23] 检测点10.3
下面的程序执行后,AX中的数值为多少?
内存地址 机器码 汇编指令
1000:0 b8 00 00 mov ax,0
1000:3 9a 09 00 00 10 call far ptr s
1000:8 40 inc ax
1000:9 58 s:pop ax
add ax,ax
...
内存地址 机器码 汇编指令
1000:0 b8 00 00 mov ax,0
1000:3 9a 09 00 00 10 call far ptr s
1000:8 40 inc ax
1000:9 58 s:pop ax
add ax,ax
...
阅读全文 |
评论次数(2) |
浏览次数(548) |
所属类型(汇编作业)
[2008-05-03 09:16] 检测点10.2
下面的程序执行后,AX中的数值为多少?
内存地址 机器码头 汇编指令
1000:0 b8 00 00 mov ax,0
1000:3 e8 01 00 call s
1000:6 40 inc ax
1000:7 58 s:pop ax
ax=3...
内存地址 机器码头 汇编指令
1000:0 b8 00 00 mov ax,0
1000:3 e8 01 00 call s
1000:6 40 inc ax
1000:7 58 s:pop ax
ax=3...
阅读全文 |
评论次数(2) |
浏览次数(502) |
所属类型(汇编作业)
[2008-05-03 09:09] 检测点10.1
补全程序,实现从内存1000:0000处开始执行指令。
assume cs:code
stack segment
db 16 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,(1000)
push ax
mov ax,(0)
push ax
retf
code ends
end start...
assume cs:code
stack segment
db 16 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,(1000)
push ax
mov ax,(0)
push ax
retf
code ends
end start...
阅读全文 |
评论次数(3) |
浏览次数(532) |
所属类型(汇编作业)
[2008-04-29 08:46] 检测点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
mov ax,4c00H
...
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
mov ax,4c00H
...
阅读全文 |
评论次数(1) |
浏览次数(471) |
所属类型(汇编作业)
[2008-04-29 08:27] 检测点9.2
补全编程,利用JCXZ指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在DX中。
assume cs:code
code segment
start:mov ax,2000H
mov ds,ax
mov bx,0
s:(mov cl,[bx])
(mov ch,0)
(jcxz ok)
(inc bx)
jmp short s
ok:mov dx,bx
mov a...
assume cs:code
code segment
start:mov ax,2000H
mov ds,ax
mov bx,0
s:(mov cl,[bx])
(mov ch,0)
(jcxz ok)
(inc bx)
jmp short s
ok:mov dx,bx
mov a...
阅读全文 |
评论次数(1) |
浏览次数(468) |
所属类型(汇编作业)
[2008-04-27 10:44] 检测点9.1
1. 程序如下:
assume cs:code
data segment
db 00H
db 0011H
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
code ends
end start
若要使程序中的JMP指令执行后,cs:IP指向程序的第一条指令,在DATA段中应该定义哪些数据?
2.程序如下:
assume cs:code
data segment
...
assume cs:code
data segment
db 00H
db 0011H
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
code ends
end start
若要使程序中的JMP指令执行后,cs:IP指向程序的第一条指令,在DATA段中应该定义哪些数据?
2.程序如下:
assume cs:code
data segment
...
阅读全文 |
评论次数(4) |
浏览次数(491) |
所属类型(汇编作业)
[2008-04-10 14:26] 检测点6.1
1. 下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,完成程序:
assume cs:codesg
codesg segment
dw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H
start: mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: mov ax,[bx]
(mov cs:[bx],ax)
add bx,2
loop s
mov...
assume cs:codesg
codesg segment
dw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H
start: mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: mov ax,[bx]
(mov cs:[bx],ax)
add bx,2
loop s
mov...
阅读全文 |
评论次数(2) |
浏览次数(464) |
所属类型(汇编作业)
[2008-04-05 10:19] 检测点3.2
1. 补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中,逆序拷贝的含义如图3.17所示(图中内存里的数据均为假设);
mov ax,1000H
mov ds,ax
(mov dx,2000H)
(mov ss,dx)
(mov sp,10H)
push[0]
push[2]
push[4]
push[6]
push[8]
push[A]
push[C]
push[E]
2. 补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中
mov ax,2000H
m...
mov ax,1000H
mov ds,ax
(mov dx,2000H)
(mov ss,dx)
(mov sp,10H)
push[0]
push[2]
push[4]
push[6]
push[8]
push[A]
push[C]
push[E]
2. 补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中
mov ax,2000H
m...
阅读全文 |
评论次数(1) |
浏览次数(447) |
所属类型(汇编作业)