zjhwasd 发表于 2015-2-20 17:15:30

实验四【bx】和loop的使用

第三题 下面的程序功能是将 mov ax,4c00h之前的指令复制到内存 0:200处补全程序 上机调试

assume cs :code

code segment

mov ax,__cs______
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,____17_____

s: mov al.
mov es:,al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end

(1)复制的是什么? 从哪里到哪里                     (2)复制的是什么? 有多少个字节, 你如何知道要复制字节的数量

希望有能力的 可以帮我解答下,我最主要困惑的就是怎么知道字节的数量,因为你前提得知道数量才能调试编译,谢谢大家帮我看看。

百日维新 发表于 2015-2-22 18:35:12

帮顶,很久没搞汇编,忘光了!

wan1346008 发表于 2015-2-26 17:36:06

我也不会 {:1_1:}

zjhwasd 发表于 2015-2-26 22:25:00

希望小甲鱼 还有各种版主帮我看看吧 那个PPt也没有讲这个题啊

matrix04882 发表于 2015-2-27 19:27:43

回答1:
复制的是:

mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,____17_____

s: mov al.
mov es:,al
inc bx
loop s
这些,就是MOV 4C00H之前的这些。

从程序所在内存地址复制到0000:0200处。

回答2:
你可以通过DEBUG本程序后,在CX处获得本程序的长度。

希望破壳的蛋蛋 发表于 2015-3-2 21:11:57

没有指明入口   默认起始地址在cs中   也就是cs:0处开始复制到4c00处结束   至于复制的是什么想它是什么 他就是什么   电脑只认01   代码在寄存器中也是用数据的形式来表示   不明白就多看两遍
页: [1]
查看完整版本: 实验四【bx】和loop的使用