αβ▲○☆★ 发表于 2013-7-26 10:58:45

求指导

assume cs:code
code segment
    mov ax,0ffffh
    mov ds,ax
    mov ax,0020h
    mov ex,ax
    mov bx,0
    mov cx,12
    s:mov dl,
    mov es:,dl
    inc bx
    loop s
   
    mov ax,4c00h
    int 21h
code ends
end

Crazy迷恋. 发表于 2013-7-26 14:03:57


楼主 请先将ex改为es,代码段中代码前4句分别是利用中介(ax)寄存器来指定ds(数据段),es(附加段)。
第五句也就是第7行 将bx置0,
第8行将cs设置为12 cs和loop是好基友~~相互搭配。
9.进入循环从ds段中偏移为【bx】里边的值。也就是DS:【bx】的内容取8个位,也就是一个字节byte给dl。
第十句:dl也就是从数据段中拿来的东西给附加段es:【bx】处。如此循环12次也就是从指定ffff为数据段中拿12个字节给指定的附加段es 0020h。
这个程序大体是这样的希望对楼主有所帮助~~~
-------------------------------------------------------
不过这种编法是有问题的。因为你不知道es段中有什么东西。如果覆盖了一些重要的数据或者直接就是别的程序的代码。那可就要出乱子。不过朋友学的这如果虚线下的内容看不懂。可以忽略~~~

Dardy 发表于 2013-7-26 14:06:57

直说问题在哪

怡静 发表于 2013-8-6 12:22:41

他肯定是编了运行达不到他要的结果,现在是他想编的题目是什么?

小甲鱼 发表于 2013-8-7 11:01:30

Crazy迷恋. 发表于 2013-7-26 14:03 static/image/common/back.gif
楼主 请先将ex改为es,代码段中代码前4句分别是利用中介(ax)寄存器来指定ds(数据段),es(附加段) ...

好样的!!

Crazy迷恋. 发表于 2013-8-7 11:24:22

小甲鱼 发表于 2013-8-7 11:01 static/image/common/back.gif
好样的!!

{:5_92:}相互学习~~~相互学习~~~
页: [1]
查看完整版本: 求指导