assume cs:code
data segment
db 'conversation',0
data ends
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset showstart ;ds:si中断程序地址
mov ax,0
mov es,ax
mov di,200H ;es:di将要复制的目的地址
mov cx,offset showend-offset showstart
cld
rep movsb ;开始复制
mov ax,0
mov es,...


- [hncscwc] 呵呵,确实考虑不周,学习了 06/08 19:10
- [游客] 很好!!不过,建议不要轻易的使用ss段地址,因为这是栈公用的,小心出问题,如果是对普通概念的内存操作 06/08 11:00
- [hncscwc] 谢谢支持,大家一起加油 12/11 23:41
- [游客] 要顶博主! 12/11 19:40
- [musicvs] /************************************** [ hncscw 12/11 16:13
- [hncscwc] 我要能有我们经理一半的水平就非常不错了,呵呵 12/11 12:41
- [yugong] 说的很神呢!自己还没有这样的感觉 12/09 20:27
- [mess] 欢迎回来:-) 11/28 14:00
- [w0922] 刚操作失误····可以看见···· 在dos 下可以看见···· windows 下为 05/12 15:50
- [w0922] 博主运行那看那滴不····程序好像没错 可显示不出来·· 05/12 15:41
[2008-05-12 08:48] 检测点13.1
阅读全文 |
评论次数(3) |
浏览次数(829) |
所属类型(汇编作业)
[2008-05-02 23:21] 检测点11.3
(1) jb s0 小于32跳转
ja s0 大于128跳转
(2) jna s0 小于或等于(不高于)32跳转
jnb s0 大于或等于(不小于)128跳转...
ja s0 大于128跳转
(2) jna s0 小于或等于(不高于)32跳转
jnb s0 大于或等于(不小于)128跳转...
阅读全文 |
评论次数(1) |
浏览次数(446) |
所属类型(汇编作业)
[2008-05-02 22:22] 检测点11.2
CF OF SF ZF PF
sub al,al 0 0 0 1 1
mov al,10H 0 0 0 0 0
add al,90H 0 0 1 0 1
mov al,80H 0 0 1 0 0
add al,80H 1 1 0 1 1
mov al,0FCH 0 0 1 0 1
add al,05H 1 0 0 0 0
mov al,7DH 0 0 0 0 1
add al,0BH 0 1 1 0 0...
sub al,al 0 0 0 1 1
mov al,10H 0 0 0 0 0
add al,90H 0 0 1 0 1
mov al,80H 0 0 1 0 0
add al,80H 1 1 0 1 1
mov al,0FCH 0 0 1 0 1
add al,05H 1 0 0 0 0
mov al,7DH 0 0 0 0 1
add al,0BH 0 1 1 0 0...
阅读全文 |
评论次数(4) |
浏览次数(458) |
所属类型(汇编作业)
[2008-05-02 22:19] 检测点11.1
sub al,al ZF = 1 PF = 1 SF = 0
mov al,1 ZF = 0 PF = 0 SF = 0
push ax ZF = 0 PF = 0 SF = 0
pop bx ZF = 0 PF = 0 SF = 0
add al,bl ZF = 0 PF = 0 SF = 0
add al,10 ZF = 0 PF = 1 SF = 0
mul al ZF = 0 PF = 1 SF = 1
执行add al,10指令后al值为12,再执行mul al指令,即为12×12结果存放在AX中,为0090H,AL的二进制值为10010000,表示为负数-1...
mov al,1 ZF = 0 PF = 0 SF = 0
push ax ZF = 0 PF = 0 SF = 0
pop bx ZF = 0 PF = 0 SF = 0
add al,bl ZF = 0 PF = 0 SF = 0
add al,10 ZF = 0 PF = 1 SF = 0
mul al ZF = 0 PF = 1 SF = 1
执行add al,10指令后al值为12,再执行mul al指令,即为12×12结果存放在AX中,为0090H,AL的二进制值为10010000,表示为负数-1...
阅读全文 |
评论次数(4) |
浏览次数(437) |
所属类型(汇编作业)
[2008-04-11 11:01] 检测点10.1
检测点10.1
了解指令retf和栈的属性即可
retf指令相当于pop ip,pop cs 栈又是后进先出 马上可得到答案
mov ax,cs
mov ax,0
检测点10.2
注意指令读取与执行前后ip的修改
题中call s读取后,ip指向0006处,保存在栈中的值也就是0006 然后执行call跳转指令
答案为 ax = 0006h
检测点10.3
与检测10.2同理,只是跳转指令改为call far ptr s将cs,ip的值都入栈.题中call far ptr s执行后ip指向0008处,然后执行跳转指令
bx保存代码的段地址1000
答案为 ...
了解指令retf和栈的属性即可
retf指令相当于pop ip,pop cs 栈又是后进先出 马上可得到答案
mov ax,cs
mov ax,0
检测点10.2
注意指令读取与执行前后ip的修改
题中call s读取后,ip指向0006处,保存在栈中的值也就是0006 然后执行call跳转指令
答案为 ax = 0006h
检测点10.3
与检测10.2同理,只是跳转指令改为call far ptr s将cs,ip的值都入栈.题中call far ptr s执行后ip指向0008处,然后执行跳转指令
bx保存代码的段地址1000
答案为 ...
阅读全文 |
评论次数(4) |
浏览次数(371) |
所属类型(汇编作业)
[2008-04-10 09:29] 检测点9.2 AND 检测点9.3
检测点9.2
这个题所考的知识点为对jcxz跳转指令的认识,它对CX的值进行判断然后做出相应的跳转
我的答案:
mov cl,[bx]
mov ch,0
jcxz ok ;cx若为0马上跳转到OK处
inc bx ;指到下一个字节
检测点9.3
与jcxz跳转指令不同,loop先将CX的值减1,再进行判断,若BX处传给cx的值为0,loop指令也先将cx的值减1,在判断,因此所填之处应将cx的值加1,才能符合题目的要求
add cl,1
(add cx,1也可以)...
这个题所考的知识点为对jcxz跳转指令的认识,它对CX的值进行判断然后做出相应的跳转
我的答案:
mov cl,[bx]
mov ch,0
jcxz ok ;cx若为0马上跳转到OK处
inc bx ;指到下一个字节
检测点9.3
与jcxz跳转指令不同,loop先将CX的值减1,再进行判断,若BX处传给cx的值为0,loop指令也先将cx的值减1,在判断,因此所填之处应将cx的值加1,才能符合题目的要求
add cl,1
(add cx,1也可以)...
阅读全文 |
评论次数(1) |
浏览次数(422) |
所属类型(汇编作业)
[2008-04-09 17:19] 检测点9.1
(1)知道标号start处的偏移地址为0
要使jmp word ptr [bx+1]指令执行后,CS:IP指向程序的第一条指令,也就是标号start处的指令,那么ds:[bx+1]的字单元存储的内容应为0000H
答案 dw 0,0,0,0(三个零也可以)
(2)jmp dword ptr ds:[0]是段间转移,指令执行后CS的值为ds:[2]处字单元的内容,ip的值为ds:[0]处的字单元的内容,根据题意马上得知
mov [bx],bx
mov [bx+2],cs
(3)(cs) = 0006h (ip) = 00BEh...
要使jmp word ptr [bx+1]指令执行后,CS:IP指向程序的第一条指令,也就是标号start处的指令,那么ds:[bx+1]的字单元存储的内容应为0000H
答案 dw 0,0,0,0(三个零也可以)
(2)jmp dword ptr ds:[0]是段间转移,指令执行后CS的值为ds:[2]处字单元的内容,ip的值为ds:[0]处的字单元的内容,根据题意马上得知
mov [bx],bx
mov [bx+2],cs
(3)(cs) = 0006h (ip) = 00BEh...
阅读全文 |
评论次数(1) |
浏览次数(370) |
所属类型(汇编作业)
[2008-04-07 15:30] 检测点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 ;初始化ds,复制数据的段地址
mov bx,0
mov cx,8 ;设置循环次数
s: mov ax,[bx] ;将要复制的数据复制到ax中
mov CS:[bx],ax ;覆盖...
assume CS:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start: mov ax,0
mov ds,ax ;初始化ds,复制数据的段地址
mov bx,0
mov cx,8 ;设置循环次数
s: mov ax,[bx] ;将要复制的数据复制到ax中
mov CS:[bx],ax ;覆盖...
阅读全文 |
评论次数(2) |
浏览次数(354) |
所属类型(汇编作业)
[2008-04-03 15:11] 检测点3.2
(1) 将左边栈中数据逆序拷贝到右边内存中
前两个指令先设置数据段的段地址
看到后面PUSH[0],PUSH[2]...从上往下将左边内存的数据压入右边内存中,
可将右边内存看做是一个栈段,段地址为2000,左边顺序读数据,右边从最后一个字单元往上接受数据,又PUSH操作先将SP-2指向新的栈顶位置
所以SP初始值为0010(第一次进行PUSH操作,SP-2=000E)依次可实现逆序拷贝
MOV AX,1000
MOV DS,AX 设置数据段的段地址
(MOV AX,2000)
(MOV SS,AX) 设置栈的段地...
前两个指令先设置数据段的段地址
看到后面PUSH[0],PUSH[2]...从上往下将左边内存的数据压入右边内存中,
可将右边内存看做是一个栈段,段地址为2000,左边顺序读数据,右边从最后一个字单元往上接受数据,又PUSH操作先将SP-2指向新的栈顶位置
所以SP初始值为0010(第一次进行PUSH操作,SP-2=000E)依次可实现逆序拷贝
MOV AX,1000
MOV DS,AX 设置数据段的段地址
(MOV AX,2000)
(MOV SS,AX) 设置栈的段地...
阅读全文 |
评论次数(4) |
浏览次数(381) |
所属类型(汇编作业)
[2008-04-03 11:33] 检测点3.1
在Debug中用"d 0;0 1f"查看内存,结果如下
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
开始AX=0,BX=0
MOV AX,1 (AX = 0001)
MOV DS,AX (段地址为0001)
MOV AX,[0000] AX = 2662 (段地址为0001,偏移地址
为00...
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
开始AX=0,BX=0
MOV AX,1 (AX = 0001)
MOV DS,AX (段地址为0001)
MOV AX,[0000] AX = 2662 (段地址为0001,偏移地址
为00...
阅读全文 |
评论次数(2) |
浏览次数(354) |
所属类型(汇编作业)