要求将mov ax,4c00h之前的数据复制到内存0:200中,补全程序
assume cs:code
code segment
mov ax,【】
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,【】
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
第一种方法测试:
我在程序里去掉了mov ax,4c00h 和 int 21h 第一个空放code,第二个放cx,此时CX=0017H;
第二种方法:
我在程序里去掉了mov ax,4c00h 和 int 21h 第一个空放CS,第二个放cx,此时CX=0016H;
第三种方法:
我在程序里去掉了mov ax,4c00h 和 int 21h 第一个空放CS,第二个放0(或者其它数据),此时CX=0017H;
第四种方法:
我在程序里去掉了mov ax,4c00h 和 int 21h 第一个空放code,第二个放0(或者其它数据),此时CX=0018H;
第五种方法:
我在程序里去掉了mov ax,4c00h 和 int 21h 第一个空放code,第二个放code(或者其它数据),此时CX=0018H;
那么这个代码段程序到底多长?请高手赐教
- [jvhybg] 谢谢你,younggay .我看完后面的章节才明白过来.真的谢谢你. 08/18 11:08
- [younggay] 程序代码的长度是和你的指令有关的,你可以观察一下你填不同内容的时候,那条指令的长度是不一样的。 在 08/18 09:57
[2009-08-14 13:59] 实验四我用了几个方法填,哪个应该是更准确呢?大家讨论一下(注:这是在我的计算机上测试的)
评论次数(2) |
浏览次数(367) |
类型(汇编作业) |
收藏此文 |
[ younggay 发表于 2009-08-18 09:57 ]
程序代码的长度是和你的指令有关的,你可以观察一下你填不同内容的时候,那条指令的长度是不一样的。
在你给出的5种方法中,要保证你最终填写的内容和你试验的内容,填好后是一样的代码长度,否则,当你填写cx的最终数据的时候,就会有问题了,所以本题代码长度其实跟你的第一个空填cs还是code可能会有区别,但是,你第二个空应该是数据,所以,要填写一个和填写数据一样长的指令形式。另外,你不应该去掉程序中的返回语句的,那样得出的直接天cx寄存器的方法没什么意义。
[ jvhybg 发表于 2009-08-18 11:08 ]
谢谢你,younggay .我看完后面的章节才明白过来.真的谢谢你.