急~关于SI的问题

gzyip 2003-01-08 11:00:02
明天结帖~~~
我的代码是这样的:
code segment
assume cs:code,ds:code
schedule_file db 15 dup(' ')
err_msg db 'Error!$'
start:
mov si,80h
mov cl,[si]
xor ch,ch
dec cx

mov si,82h
inc si ;没有这两句,我的程序就能正确运行
dec si ;增加了这两句,就每次运行都致命错误,这是为什么呢???
;如果我要对SI进行运算,那么要怎样修改呢???
lea di,schedule_file
cld
rep movsb

mov ax,4c00h
int 21h
code ends
end start
...全文
97 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
clumsy 2003-01-09
  • 打赏
  • 举报
回复
楼主的代码使用的是exe格式,要获取命令行参数就不能再对ds赋值,因为进入程序时,ds指向的就是psp,可以从ds:[80h]处获取有关命令行的信息,但再指向code段时,显然就错误了;如果按xing1011的代码,也应转换为com格式才可以,否则还是有同样的问题。
xing1011 2003-01-09
  • 打赏
  • 举报
回复
没问题,我明天给你发
gzyip 2003-01-09
  • 打赏
  • 举报
回复
假设我这个程序的名字命名为test.exe
那么执行时应该时test abc.exe
我要把abc.exe这个字串放入schedule_file里面~~~
就是这样~~~
xing1011 2003-01-09
  • 打赏
  • 举报
回复
你想干什么?要实现什么?写详细点,。我明天在答你。
gzyip 2003-01-09
  • 打赏
  • 举报
回复
改成这样还是不行~~~
是否还有问题~~~
要是改成这样,我就又有问题啦~~~
我从80H里面就不能读出我的FCB啦~~~

code segment
assume cs:code,ds:code,es:code
schedule_file db 15 dup(' ')
start:
mov bx,cs
mov ds,bx
mov es,bx

mov si,80h
mov cl,[si]
xor ch,ch
dec cx

mov si,82h
lea di,schedule_file
cld
rep movsb

mov ax,4c00h
int 21h
code ends
end start
xing1011 2003-01-09
  • 打赏
  • 举报
回复
是啊!,是DS:SI —>ES:DI
先指出DS和ES吧
xing1011 2003-01-09
  • 打赏
  • 举报
回复
27494161
xing1011 2003-01-09
  • 打赏
  • 举报
回复
试试吧

code segment
assume cs:code,ds:code,ds:code
org 100h
start: jmp l1
schedule_file db 15 dup(' ')
err_msg db 'Error!$'

l1: mov si,80h
mov cl,[si]
xor ch,ch
dec cx

mov si,82h
inc si ;没有这两句,我的程序就能正确运行
dec si ;增加了这两句,就每次运行都致命错误,这是为什么呢???
;如果我要对SI进行运算,那么要怎样修改呢???
lea di,schedule_file
cld
rep movsb

mov ax,4c00h
int 21h
code ends
end start

gzyip 2003-01-09
  • 打赏
  • 举报
回复
呵呵,今天一路都没空~~~
好,太谢谢你啦~~~结帖~~~
xing1011 2003-01-09
  • 打赏
  • 举报
回复
没问题啊,你试了吗?
gzyip 2003-01-08
  • 打赏
  • 举报
回复
吓???不是从SI COPY到DI吗???
xing1011 2003-01-08
  • 打赏
  • 举报
回复
rep movsb 是从 DS 到 ES 的 COPY 啊!!
你的ES呢?
xing1011 2003-01-08
  • 打赏
  • 举报
回复
那两句没有问题,
gzyip 2003-01-08
  • 打赏
  • 举报
回复
吓???我的是MASM5~~~
我也能编译啊~~~但是不能运行啊~~~
xing1011 2003-01-08
  • 打赏
  • 举报
回复
没问题啊,我可以运行的。是masm的问题,或 不版本不对??
我用的是6.14版的,你换一个masm试试。。

21,499

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧