下面程序执行后,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]
分析:CALL 16位寄存器,先将I...


- [wisji8] 最后AX = 5吧。 05/09 20:00
- [游客] 请教:程序的入口点就是在加载程序后DS寄存器中存入的段地址+10H为入口点 这句话怎么得出的? 10/30 20:05
- [游客] 希望heihei能看到,请教下, dw 0,0,0,0,0 定义了5个字单元空间,我怎么感觉不需要 10/30 18:56
- [游客] 简直是个鸟人啊,说什么啊!!1 03/24 21:14
- [cy3221] 顶!觉得还行! 语言确实只是工具而已!! 03/12 15:12
- [lihao0315] 好,顶! 03/08 15:48
- [zhubowen] 顶!!! 03/08 12:34
- [muhongzhang] 好! 顶一下 12/13 22:51
- [游客] 好!顶! 12/13 20:20
- [112255] 好 12/12 17:39
- [yingmu] 你们说可以验证题是否对的,是什么软件,在哪下啊 09/29 14:52
- [游客] 博主最近忙什么呢?好久不见文章有更新了...... 07/01 20:00
- [w0922] 呵呵 在武汉出差呀·· 是在武昌不··· ···我在武汉上学 不过 现在 04/26 21:20
- [w0922] 你好 !能不能到我的博客看哈 有个问题想请教哈你··· 就是我博客实验十分析的那个问题 04/18 15:15
- [tomato] 前面是悬崖,闭着眼跳下去是很痛苦的,但在跳的过程中学会长出翅膀飞翔却是最幸福的! ------- 03/26 16:41
[2008-05-08 23:46] 检测10.4
阅读全文 |
评论次数(2) |
浏览次数(1122) |
所属类型(汇编作业)
[2008-05-08 23:07] 检测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
...
阅读全文 |
评论次数(1) |
浏览次数(926) |
所属类型(汇编作业)
[2008-05-08 22:59] 检测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
分析:CALL 标号指令在跳转到标号前会有一个IP入栈的操作,也就是说把IP入栈后在跳转到S处执行,入栈时IP=6,S标号处的功能是将出栈的值存入AX,也就是这个时候AX=6...
内存地址 机器码 汇编指令
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
分析:CALL 标号指令在跳转到标号前会有一个IP入栈的操作,也就是说把IP入栈后在跳转到S处执行,入栈时IP=6,S标号处的功能是将出栈的值存入AX,也就是这个时候AX=6...
阅读全文 |
评论次数(1) |
浏览次数(871) |
所属类型(汇编作业)
[2008-05-08 22:51] 检测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,?
push ax
mov ax,?
push ax
retf
code ends
end start
分析:根据题意,我们知道如果程序要从1000:0000处开始执行,那么CS=1000,I...
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,?
push ax
mov ax,?
push ax
retf
code ends
end start
分析:根据题意,我们知道如果程序要从1000:0000处开始执行,那么CS=1000,I...
阅读全文 |
评论次数(1) |
浏览次数(743) |
所属类型(汇编作业)
[2008-04-14 16:00]
检测9.3
补全程序利用LOOP指令,实现内存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
add cx,1 //补
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
add cx,1 //补
inc bx
loop s
ok:dec bx
mov dx,bx
mov ax,4c00h
...
阅读全文 |
评论次数(7) |
浏览次数(1479) |
所属类型(汇编作业)
[2008-04-14 13:04] 检测9.2
补全程序,利用JCXZ指令,实现内存2000H段中查找第一个值为0的内存单元,找到后将它的偏移地址存到DX当中
assume cs:code
code segment
start:
mov ax,2000H
mov ds,ax
mov bx,0
s:mov ch,0
mov cl,[bx]
jcxz OK
inc bx
jmp short s
OK:mov dx,bx
mov ax,4C00H
...
assume cs:code
code segment
start:
mov ax,2000H
mov ds,ax
mov bx,0
s:mov ch,0
mov cl,[bx]
jcxz OK
inc bx
jmp short s
OK:mov dx,bx
mov ax,4C00H
...
阅读全文 |
评论次数(4) |
浏览次数(804) |
所属类型(汇编作业)
[2008-04-14 11:52] 检测9.1
(1)程序如下:
assume cs:code,ds:data
data segment
?
data ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
mov ax,4C00H
int 21H
code ends
end start
若要使程序在执行JMP指令后,CS:IP指向程序的第一条指令,在DATA段中应该定义哪些数据?
答:jmp word ...
assume cs:code,ds:data
data segment
?
data ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
mov ax,4C00H
int 21H
code ends
end start
若要使程序在执行JMP指令后,CS:IP指向程序的第一条指令,在DATA段中应该定义哪些数据?
答:jmp word ...
阅读全文 |
评论次数(7) |
浏览次数(966) |
所属类型(汇编作业)
[2008-04-06 15:36] 检测6.1
1、下面的程序实现依次用内存0:0-0:15单元中的内容改写程序中的数据,完成程序
assume cs:mycode
mycode 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 ax,4C00H
int 21H
...
assume cs:mycode
mycode 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 ax,4C00H
int 21H
...
阅读全文 |
评论次数(2) |
浏览次数(626) |
所属类型(汇编作业)
[2008-03-26 22:49] 检测点3.2
1、逆序拷贝的问题
mov ax,1000H
mov ds,ax
mov ax,2000H --要求补入部分
mov ss,ax --同上
mov sp,10H --同上
push [0]
push [2]
push [4]
push [6]
push [B]
push [A]
push [C]
push [E]
PS:其实如果此题没有限定什么语句的话,解题方法是很多的,比如可以把左右2个段看成2个栈段,左边做POP操作,右边做PUSH操作等。呵呵
2、补全下面程序...
mov ax,1000H
mov ds,ax
mov ax,2000H --要求补入部分
mov ss,ax --同上
mov sp,10H --同上
push [0]
push [2]
push [4]
push [6]
push [B]
push [A]
push [C]
push [E]
PS:其实如果此题没有限定什么语句的话,解题方法是很多的,比如可以把左右2个段看成2个栈段,左边做POP操作,右边做PUSH操作等。呵呵
2、补全下面程序...
阅读全文 |
评论次数(3) |
浏览次数(408) |
所属类型(汇编作业)
[2008-03-26 21:57] 检测点3.1(2)
各寄存器的初始值:CS=2000H,IP=0,DS=1000H,AX=0,BX=0
1、写出CPU执行指令的序列 (顺序为从上到下)
MOV AX,6622H 此时CS=2000H,IP=3
JMP 0FF0:0100 此步有些特殊,主要是IP的变化,这里IP会有2次变化,第一次在读到这条指令时(在执行之前)IP会变成3+5=8,在执行完后IP又变成0100 CS=0FF0
通过上面的跳转指令执行后CS和IP都指向了新的目标地址,那就是1000H
MOV AX,2000H IP=3
MOV DS,AX 此处是将数据段地址初始为2...
1、写出CPU执行指令的序列 (顺序为从上到下)
MOV AX,6622H 此时CS=2000H,IP=3
JMP 0FF0:0100 此步有些特殊,主要是IP的变化,这里IP会有2次变化,第一次在读到这条指令时(在执行之前)IP会变成3+5=8,在执行完后IP又变成0100 CS=0FF0
通过上面的跳转指令执行后CS和IP都指向了新的目标地址,那就是1000H
MOV AX,2000H IP=3
MOV DS,AX 此处是将数据段地址初始为2...
阅读全文 |
评论次数(3) |
浏览次数(422) |
所属类型(汇编作业)