家里穷 发表于 2013-7-2 02:11:01

汇编语言第五章实验4(2)

实验4 和loop的使用(1) 编程,向内存0:200~0:23f依次传递数据0~63(3fh)。 这是个比较另类的做法,传统做法请参考实验4(2)assume cs:codecode segment   mov bx,20h   mov ss,bx   mov sp,40h   mov bx,3f3eh   mov cx,32s:   push bx   sub bx,202h   loop s   mov ax,4c00h   int 21hcode endsend麻烦用文字描述一下这个程序的每段程序的内容主要是我后面的几段看不懂 不知道他为什么要这样做

↓《 发表于 2013-7-2 02:11:02

这是我做的一个详细的注释,您把他下载一下,看了之后还不懂的话,欢迎继续追问!{:1_1:}
实验4 和loop的使用
(1) 编程,向内存0:200~0:23f依次传递数据0~63(3fh)。
这是个比较另类的做法,传统做法请参考实验4(2)
assume cs:code
code segment
   mov bx,20h
   mov ss,bx
   mov sp,40h
   mov bx,3f3eh
   mov cx,32
s:   pushbx
   sub bx,202h
   loop s
   mov ax,4c00h
   int 21h
code ends
end
麻烦用文字描述一下这个程序的每段程序的内容主要是我后面的几段看不懂不知道他为什么要这样做
注释:你这种做法主要是借用了堆栈,利用有限次入栈操作达到向内存写入数据的目的,入栈的次数是通过LOOP循环来控制的。您能另辟蹊径实属不易,这是一种很好的学习方法。
assume cs:code
code segment
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   mov bx,20h
   mov ss,bx
   mov sp,40h ;完成堆栈的初始化,即设置堆栈指针,因为堆栈的操作是以字为单位的,而题目要求向内存0:200~0:23F依次送入数据0~60(3FH)
指令执行后堆栈指针指向了内存单元20:40(物理地址0240),刚好是内存0:23F( 物理地址023F)的下一个字节单元,这符合空栈是堆栈指针指向栈顶的下一个内存单元的规定。目的是是堆栈和需要写入数据的内存空间重叠。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   mov bx,3f3eh ;因为堆栈操作以字为单位,所以向BX中送入一个字,有因为入栈时堆栈指针减2所以向BX中送入需要传送的最后一个字3f3e.注意:高字节与高地址单元对应,低字节与低地址单元对应,这儿很容易出错!
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   mov cx,32 ;设定循环次数,因为要传送0~63共64个字节也即32个字,所以要循环32次。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
s:   push bx
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   sub bx,202h;=-0202。将BX中的低字节和高字节同时减去2就得到了下一个需要传送的字。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   loop s
   mov ax,4c00h
   int 21h
code ends
end
图解如下:   (作图水平很烂,请见谅)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image002.jpg



↓《 发表于 2013-7-2 12:46:27

不好意思,这图不能显示,我重新上传了一下。

zer0 发表于 2013-7-2 13:00:03

哎呀,,,很多人都懒得回答你问题了!!!!!{:5_98:}

↓《 发表于 2013-7-2 13:37:12

恩?{:1_1:}

冰、释。蓝 发表于 2013-7-2 14:16:07

这是一种程序代码!!!

zer0 发表于 2013-7-2 22:10:16

↓《 发表于 2013-7-2 13:37 static/image/common/back.gif
恩?

不是说你,是说LZ,他发很多次问题了,每次都是不采纳!!!{:5_90:}

zer0 发表于 2013-7-2 22:10:16

↓《 发表于 2013-7-2 13:37 static/image/common/back.gif
恩?

不是说你,是说LZ,他发很多次问题了,每次都是不采纳!!!{:5_90:}

↓《 发表于 2013-7-3 07:43:24

无所谓了。{:1_1:}

ZhaoYuBetter 发表于 2014-3-8 16:37:15

好棒!学习了
页: [1]
查看完整版本: 汇编语言第五章实验4(2)