写出下面每条指令执行后,ZF、PF、SF等标志位的值。
sub al,al ZF=____PF=____SF=____
mov al,1 ZF=____PF=____SF=____
push ax ZF=____PF=____SF=____
pop bx ZF=____PF=____SF=____
add al,bl ZF=____PF=____SF=____
add al,10 ZF=____PF=____SF=____
mul al ZF=____PF=____SF=____
答:
sub al,al ;运算指令,影响标志位。指令...


- [lshang] 8个通用寄存器用了7个。。 如果先复制雇佣人数的话只能用bp中转 但是用bp就太不伦不类了。。 06/12 10:44
- [tily] 你先DIV算出“人均收入”,之后再复制“雇员数”好像跟我碰到一样的问题 就是先复制“雇员数”AX中的 06/11 21:48
- [lshang] 额 可能是因为型号不一样? Microsoft Windows [Version 6.1.76 06/06 17:19
- [lshang] 当前AX的值不就是2的8次方么? 1)ADD AX,AX AX = 2 ;2^1 JMP 06/06 17:13
- [游客] 写的不错,加油 06/06 17:05
- [游客] 写的不错,加油 06/06 17:04
- [lshang] right演示? 没懂 06/06 17:03
- [游客] 这样子是没有结果的。不行;请你思考:得到2的8次方,一共执行的多少次(运行了多少-t)? 06/06 16:59
- [游客] 只读存储器中的内容是不可改的,你的怎么可以呢? 下面是我电脑的运行结果: C:\masm5.0> 06/06 16:56
- [游客] right演示 06/06 16:49
[2011-06-26 11:31] 检测点11.1
阅读全文 |
评论次数(0) |
浏览次数(844) |
所属类型(汇编作业)
[2011-06-18 15:53] 检测点10.5
(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 ax
in...
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
in...
阅读全文 |
评论次数(0) |
浏览次数(1022) |
所属类型(汇编作业)
[2011-06-18 13:24] 检测点10.4
下面的程序执行后,ax中的数值为多少?
内存地址 机器码 汇编指令
1000:0 b8 06 00 mov ax,6
1000:3 ff d0 call ax
1000:5 40 inc ax
1000:6 mov bp,sp
add ax,[bp]
解:
call指令为转移指令
call 16位 reg格式 指令执行的是近转移
指令执行时
(SP) = (SP) - 2
((SS) * 10H + (SP)) = (IP)
(IP) = (1...
内存地址 机器码 汇编指令
1000:0 b8 06 00 mov ax,6
1000:3 ff d0 call ax
1000:5 40 inc ax
1000:6 mov bp,sp
add ax,[bp]
解:
call指令为转移指令
call 16位 reg格式 指令执行的是近转移
指令执行时
(SP) = (SP) - 2
((SS) * 10H + (SP)) = (IP)
(IP) = (1...
阅读全文 |
评论次数(0) |
浏览次数(968) |
所属类型(汇编作业)
[2011-06-18 08:59] 检测点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
pop bx
add ax,bx
解:
call为转移指令
call far ptr 标号 实现的是段间转移
指令执行时
(SP) = (SP) - 2;
((SS) * 10H + (SP)...
内存地址 机器码 汇编指令
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
pop bx
add ax,bx
解:
call为转移指令
call far ptr 标号 实现的是段间转移
指令执行时
(SP) = (SP) - 2;
((SS) * 10H + (SP)...
阅读全文 |
评论次数(0) |
浏览次数(1002) |
所属类型(汇编作业)
[2011-06-17 17:19] 检测点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指令为转移指令
call 标号 这种格式依靠位移进行转移
指令执行时
(SP) = (SP)-2;
((SS) * 10H + (SP)) = (IP);
(IP) = (IP) + 16位位移;
...
内存地址 机器码 汇编指令
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指令为转移指令
call 标号 这种格式依靠位移进行转移
指令执行时
(SP) = (SP)-2;
((SS) * 10H + (SP)) = (IP);
(IP) = (IP) + 16位位移;
...
阅读全文 |
评论次数(0) |
浏览次数(876) |
所属类型(汇编作业)
[2011-06-17 14:30] 检测点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
—————————————————————————————————————
解:
ret...
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
—————————————————————————————————————
解:
ret...
阅读全文 |
评论次数(0) |
浏览次数(942) |
所属类型(汇编作业)
[2011-06-16 10:07] 检测点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
______
inc bx
loop S
ok:
dec bx
mov dx,bx
mov ax,4C00H
int 21H
code ends
end start
解:
loo...
assume cs:code
code segment
start:
mov ax,2000H
mov ds,ax
mov bx,0
S:
mov cl,[bx]
mov ch,0
______
inc bx
loop S
ok:
dec bx
mov dx,bx
mov ax,4C00H
int 21H
code ends
end start
解:
loo...
阅读全文 |
评论次数(0) |
浏览次数(397) |
所属类型(汇编作业)
[2011-06-14 10:44] 检测点9.2
补全程序,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。
assume cs:code
code segment
start:
mov ax,2000H
mov ds,ax
mov bx,0
S:
___________
___________
___________
___________
jmp short S
OK:
mov dx,bx
mov ax,4C00H
int 21H
code ends
end start
———...
assume cs:code
code segment
start:
mov ax,2000H
mov ds,ax
mov bx,0
S:
___________
___________
___________
___________
jmp short S
OK:
mov dx,bx
mov ax,4C00H
int 21H
code ends
end start
———...
阅读全文 |
评论次数(0) |
浏览次数(438) |
所属类型(汇编作业)
[2011-06-12 18:45] 检测点9.1
(1)程序如下
assuem cs:code
data segment
?
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段中应该定义哪些数据?
解:
jmp word ptr [bx+1]为段内跳转指令,仅修改IP。指令执行后(IP)= word ptr [bx+1]。
题目要...
assuem cs:code
data segment
?
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段中应该定义哪些数据?
解:
jmp word ptr [bx+1]为段内跳转指令,仅修改IP。指令执行后(IP)= word ptr [bx+1]。
题目要...
阅读全文 |
评论次数(0) |
浏览次数(377) |
所属类型(汇编作业)
[2011-06-08 15:46] 检测点6.1
(1)下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,完成程序:
assume cs:code
code 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
code ends
end start
...
assume cs:code
code 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
code ends
end start
...
阅读全文 |
评论次数(0) |
浏览次数(318) |
所属类型(汇编作业)