测试通过
assume cs:code
code segment
start:mov ax,2000H
mov ds,ax
mov bx,0
s:mov cl,[bx];把当前内存写入CL
mov ch,0
inc cx;由于LOOP判断前会减1,所以增加1
inc bx;指向下一个内存地址
loop s;CX先减1,若不为零,跳转到s
ok:dec bx
mov dx,bx
mov ax,4c00H
...


- [tankle] 感谢楼主 03/08 19:34
- [zhy_zhy] 博主说的很详细,终于知道自己错在哪里了…… 07/06 15:19
- [flyincold] 唉,我第一次也错在第一题了 05/21 14:11
- [daydream] 看了,上面的精彩言论,顿时茅塞顿开啊!!! 03/05 09:13
- [lycwg] 哦,不好意思,刚才是我搞错了。FFFF0H-FFFFH=EFFF1H 02/08 22:10
- [lycwg] 2、 物理地址为ffff0H的内存单元的偏移地址可能为ffffH。 FFFF0H 02/08 21:47
- [游客] 正确。 02/05 15:06
- [游客] s:mov cx,ds:[bx];把查找的位置的字写入CX mov ch,0;去 02/05 15:02
- [younggay] 分析的都正确。 02/02 15:53
- [b2311057] 重新检查,发现空格在table段已经定义好了,画蛇添足又重新定义一遍空格,修改后代码更加精炼。 论 01/20 13:14
[2009-02-04 23:21] 检测点9.3作业
阅读全文 |
评论次数(1) |
浏览次数(837) |
所属类型(汇编作业)
[2009-02-04 22:46] 检测点9.2作业
测试通过
assume cs:code
code segment
start:mov ax,2000H
mov ds,ax
mov bx,0
s:mov cx,ds:[bx];把查找的位置的字写入CX
mov ch,0;去掉高位的值
jcxz ok;如果CX=0,跳转到OK
inc bx;下一个搜索位置
jmp short s
ok:mov dx,bx
mov ax,4c00H
int 21H
code ends ...
assume cs:code
code segment
start:mov ax,2000H
mov ds,ax
mov bx,0
s:mov cx,ds:[bx];把查找的位置的字写入CX
mov ch,0;去掉高位的值
jcxz ok;如果CX=0,跳转到OK
inc bx;下一个搜索位置
jmp short s
ok:mov dx,bx
mov ax,4c00H
int 21H
code ends ...
阅读全文 |
评论次数(1) |
浏览次数(848) |
所属类型(汇编作业)
[2009-02-01 10:29] 检测点9.1作业
全部测试通过
(1)
assume cs:code
data segment
db 5,0,0,5,5,5
;跳转的位置是bx+1,由于bx=0,因此,要保证1的位置
;也就是第二个位置起一个字的位置(即两个字节)
;必须为0才能在段间转移到start的位置
;至于其他位可以任意填写,长度也可以任意指定
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
code ends
end start ...
(1)
assume cs:code
data segment
db 5,0,0,5,5,5
;跳转的位置是bx+1,由于bx=0,因此,要保证1的位置
;也就是第二个位置起一个字的位置(即两个字节)
;必须为0才能在段间转移到start的位置
;至于其他位可以任意填写,长度也可以任意指定
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
code ends
end start ...
阅读全文 |
评论次数(1) |
浏览次数(841) |
所属类型(汇编作业)
[2009-01-20 08:55] 第八章实验任务
上机调试通过:
assume cs:codesg
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
;以上是表示21年的21个字符串(从00H到21*4=54H:53H)
dd 16,22,382,1356,2390,8000,16000,24486,50065,974...
assume cs:codesg
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
;以上是表示21年的21个字符串(从00H到21*4=54H:53H)
dd 16,22,382,1356,2390,8000,16000,24486,50065,974...
阅读全文 |
评论次数(2) |
浏览次数(877) |
所属类型(汇编作业)
[2009-01-04 20:39] 第七章实验任务
程序调试通过:
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:mov ax,datasg
mov ds,ax
mov...
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:mov ax,datasg
mov ds,ax
mov...
阅读全文 |
评论次数(1) |
浏览次数(600) |
所属类型(汇编作业)
[2009-01-04 11:04] 第六章实验任务
全部上机测试通过
1、
23 01 56 04 89 07 BC 0A EF 0D ED 0F BA 0C 87 09
0B67 0B66 0B65
X-2 X-1
2、
23 01 56 04 00 00 00 00 00 00 00 00 00 00 00 00
0B67 0B66 0B65
X-2 X-1
若N小于16,则为16,大于16,则补齐不足16倍数的数量
3、
23 01 56 04 00 00 00 00 00 00 00 00 00 00 00 00
0B65 0B69 0B68
X+3 X+4
4、如果前面3题都把END START...
1、
23 01 56 04 89 07 BC 0A EF 0D ED 0F BA 0C 87 09
0B67 0B66 0B65
X-2 X-1
2、
23 01 56 04 00 00 00 00 00 00 00 00 00 00 00 00
0B67 0B66 0B65
X-2 X-1
若N小于16,则为16,大于16,则补齐不足16倍数的数量
3、
23 01 56 04 00 00 00 00 00 00 00 00 00 00 00 00
0B65 0B69 0B68
X+3 X+4
4、如果前面3题都把END START...
阅读全文 |
评论次数(2) |
浏览次数(577) |
所属类型(汇编作业)
[2008-12-27 07:25] 检测点6.1作业
1、上机测试通过
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 ax,4c00h
int 21h
codesg ends
end start ...
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 ax,4c00h
int 21h
codesg ends
end start ...
阅读全文 |
评论次数(2) |
浏览次数(348) |
所属类型(汇编作业)
[2008-12-26 08:56] 第五章实验任务
1、2、结果都是一样,调试通过
assume cs:codesg
codesg segment
mov ax,0020h
mov ds,ax
mov bx,0
mov cx,0040h
s:mov [bx],bl
inc bl
loop s
mov ax,4c00h
int 21h
codesg ends
end
3、
assume cs:codesg
codesg segment
mov ax,cs
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
m...
assume cs:codesg
codesg segment
mov ax,0020h
mov ds,ax
mov bx,0
mov cx,0040h
s:mov [bx],bl
inc bl
loop s
mov ax,4c00h
int 21h
codesg ends
end
3、
assume cs:codesg
codesg segment
mov ax,cs
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
m...
阅读全文 |
评论次数(4) |
浏览次数(337) |
所属类型(汇编作业)
[2008-12-25 23:22] 第四章实验任务
第一题用edit编辑文本存为t1.asm
然后使用命令:
masm.exe t1;
link.exe t1;
编译完毕以后生成t1.exe
第二题使用debug.exe t1.exe进入后查看寄存器内容,如图所示
第三题在使用debug t1.exe以后
使用R命令查看,PSP的位置在0B54:0
程序位置可以从CS:IP中看到为0B64:0
PSP的位置就在0B54:0到0B54:FF的256个字节里面
通过D 0B54:0查看,头两个字节确实是CD20。...
然后使用命令:
masm.exe t1;
link.exe t1;
编译完毕以后生成t1.exe
第二题使用debug.exe t1.exe进入后查看寄存器内容,如图所示
第三题在使用debug t1.exe以后
使用R命令查看,PSP的位置在0B54:0
程序位置可以从CS:IP中看到为0B64:0
PSP的位置就在0B54:0到0B54:FF的256个字节里面
通过D 0B54:0查看,头两个字节确实是CD20。...
阅读全文 |
评论次数(4) |
浏览次数(354) |
所属类型(汇编作业)
[2008-12-25 13:32] 第三章实验任务
1、
5BEA
5CCA
31F0
6122
00FE 2200:00FE 5CCA
00FC 2200:00FC 6122
00FE 6122
0100 5CCA
00FE 2200:00FE 31F0
00FC 2200:00FC 2F32
第二个题我先看也是比较迷惑,在论坛上逛了一下,看见是这个解释:
通过改变寄存器的值来测试,发现T命令"保护现场"的经过是:
先是标志寄存器入栈
接着CS寄存器入栈
接着IP寄存器入栈
接着是BP寄存器入栈
最着是AX寄存器入栈
但是我觉得既然我们没有指定栈的大小也无法指定栈的大小
我们指定的SS:...
5BEA
5CCA
31F0
6122
00FE 2200:00FE 5CCA
00FC 2200:00FC 6122
00FE 6122
0100 5CCA
00FE 2200:00FE 31F0
00FC 2200:00FC 2F32
第二个题我先看也是比较迷惑,在论坛上逛了一下,看见是这个解释:
通过改变寄存器的值来测试,发现T命令"保护现场"的经过是:
先是标志寄存器入栈
接着CS寄存器入栈
接着IP寄存器入栈
接着是BP寄存器入栈
最着是AX寄存器入栈
但是我觉得既然我们没有指定栈的大小也无法指定栈的大小
我们指定的SS:...
阅读全文 |
评论次数(2) |
浏览次数(334) |
所属类型(汇编作业)