鱼C论坛

 找回密码
 立即注册
查看: 2100|回复: 9

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

[复制链接]
发表于 2013-7-2 02:11:01 | 显示全部楼层 |阅读模式
7鱼币
实验4 [bx]和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:   push bx
     sub bx,202h
     loop s
     mov ax,4c00h
     int 21h
code ends
end
麻烦用文字描述一下这个程序的每段程序的内容  主要是我后面的几段看不懂 不知道他为什么要这样做

最佳答案

查看完整内容

这是我做的一个详细的注释,您把他下载一下,看了之后还不懂的话,欢迎继续追问!{: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 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-2 02:11:02 | 显示全部楼层
这是我做的一个详细的注释,您把他下载一下,看了之后还不懂的话,欢迎继续追问!{:1_1:}
实验4 [bx]和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  ;[BX]=[BX]-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



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-2 12:46:27 | 显示全部楼层
不好意思,这图不能显示,我重新上传了一下。 实验4第一小题的详细解释.rar (18.4 KB, 下载次数: 7)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-2 13:00:03 | 显示全部楼层
哎呀,,,很多人都懒得回答你问题了!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-2 13:37:12 | 显示全部楼层
恩?{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-2 14:16:07 | 显示全部楼层
这是一种程序代码!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-2 22:10:16 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-2 22:10:16 | 显示全部楼层

不是说你,是说LZ,  他发很多次问题了,每次都是不采纳!!!  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-3 07:43:24 | 显示全部楼层
无所谓了。{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-8 16:37:15 | 显示全部楼层
好棒!学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 23:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表