. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
包含多个段的程序
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
实验五6题
[待解决]
回复[
3
次 ] 点击[
443
次 ]
lwz
[帖 主]
[ 发表时间:2008-11-28 21:52 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:2
信誉值:2
注册日期:2008-11-24 20:37
各位看看这个程序ASSUME CS:CODE
A SEGMENT
DW 1,2,3,4,5,6,7,8
A ENDS
B SEGMENT
DW 0,0,0,0,0,0,0,0
B ENDS
CODE SEGMENT
START:MOV AX,A
MOV DS,AX
MOV DX,8
MOV AX,B
MOV SS,AX
MOV SP,9
MOV CX,8
S:MOV AX,[BX]
PUSH AX
SUB BX,1
LOOP S
CODE ENDS
END START
不知道有什么问题DEBUG运行到MOV SS,AX时DOS窗口就自动关闭
mouse
[第
1
楼]
[ 回复时间:2008-11-29 08:45 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
上面的程序有很多中文字符,通过编译有问题吧
MOV DX,8
=======
下面没有用到dx寄存器,为什么要设置呢他呢 还是8
MOV SP,9
========
有9个字节就能用了吗?要存放8个字,这样设置肯定不对。
SUB BX,1
----------
注意push指令的操作步骤,sp=sp-2然后存放数据,这样能实现题目的功能吗?
至于不能跟踪的问题,在实模式下调试吧,这个问题和第一版实验三问题一样,在debug下有时候会有系统保护模式和中断的问题导致错误。(当sp过小的时候)
lwz
[第
2
楼]
[ 回复时间:2008-11-29 11:07 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:2
信誉值:2
注册日期:2008-11-24 20:37
楼上的哥哥在实模式下是开机进入的么,实模式下内存数据不会被意外改写导致系统崩溃么还有就是十六为的程序在三十二位系统下可以运行么
mouse
[第
3
楼]
[ 回复时间:2008-11-29 15:35 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
实模式下是开机进入的么,实模式下内存数据不会被意外改写导致系统崩溃么
------------------
98有自带的实模式,下载想用得自己装一个,博客推荐的文章有这个问题的安装。
看一下附注一,我们调试程序一般都在虚拟dos下,而这些是有系统“保护”的,也就是保护模式。当sp过小的时候,debug执行t命令调试的时候会引起保护的问题,而不是这个程序本身有问题。
是十六为的程序在三十二位系统下可以运行么
----------------
MOV SP,9 --能实现程序的功能吗?跟323位操作系统没有任何的关系。建议楼主再看看书。书上的问题例子要好好看看并实验。
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved