鱼C论坛

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

[已解决]编译器又无法编译了

[复制链接]
发表于 2022-5-26 20:01:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大佬们,这哪里出问题了,我检查了代码也没出问题啊


  1. assume cs:codes, ds:datas, ss:stacks

  2. stacks segment
  3. dw 0,0,0,0,0,0,0,0
  4. stacks ends

  5. datas segment
  6. db '1. display......'
  7. db '2. browse.......'
  8. db '3. replace......'
  9. db '4. modify.......'
  10. datas ends

  11. codes segment
  12. start:
  13.         mov ax,stacks
  14.         mov ss,ax
  15.         mov sp,10H
  16.         mov ax,datas
  17.         mov ds,ax
  18.         mov si,0
  19.         mov cx,4
  20. s0:
  21.         push cx
  22.         mov bx,0
  23.         mov cx,4
  24. s1:
  25.         mov al,[si+3+bx]
  26.         and al,11011111b
  27.         mov [si+3+bx],al
  28.         inc bx
  29.         loop s1

  30.         pop cx
  31.         add si,10H
  32.         loop s0

  33.         mov ax,4c00h
  34.         int 21h
  35. codes ends

  36. end start
复制代码


捕获.JPG
最佳答案
2022-5-26 21:04:41
        你的代码我在 DOSBOX 下用 MASM 5.10B 可以正常编译,没有任何问题。
        这两句
  1.         mov al,[si+3+bx]

  2.         mov [si+3+bx],al
复制代码

        改为
  1.         mov al,byte ptr [si+3+bx]

  2.         mov byte ptr [si+3+bx],al
复制代码

        试试看呢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-5-26 20:18:41 | 显示全部楼层
不建议用这种方式编译
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-26 21:04:41 | 显示全部楼层    本楼为最佳答案   
        你的代码我在 DOSBOX 下用 MASM 5.10B 可以正常编译,没有任何问题。
        这两句
  1.         mov al,[si+3+bx]

  2.         mov [si+3+bx],al
复制代码

        改为
  1.         mov al,byte ptr [si+3+bx]

  2.         mov byte ptr [si+3+bx],al
复制代码

        试试看呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-26 21:37:29 | 显示全部楼层
jackz007 发表于 2022-5-26 21:04
你的代码我在 DOSBOX 下用 MASM 5.10B 可以正常编译,没有任何问题。
        这两句

可以了,这是为啥呢,为啥改下就能行了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-26 21:41:40 | 显示全部楼层
我把栈段
  1. stacks segment
  2. dw 0,0,0,0,0,0,0,0
  3. stacks ends
复制代码

改成
  1. stacks segment
  2. dw 0
  3. stacks ends
复制代码


可以吗,后面栈顶SP=2?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-26 22:00:06 | 显示全部楼层
本帖最后由 jackz007 于 2022-5-26 22:10 编辑


       像下面这样定义堆栈段,你无需用任何代码初始化 SS 和 SP 值,而且,你会发现,连接时,前面给出的无堆栈段的警告信息也已经消失,debug 进去,你更会发现,SS、SP 是已经就绪的。
       堆栈在一个程序中是最关键的数据存储区,必须要定义得足够大,宁可定义大了空着,也绝不可以不够用,否则的话,一旦堆栈空间被撑满,你的程序一定会奔溃!

  1. assume cs:codes , ds:datas

  2. stacks segment stack
  3. dw 400h dup(0)
  4. stacks ends

  5. datas segment
  6. db '1. display......'
  7. db '2. browse.......'
  8. db '3. replace......'
  9. db '4. modify.......'
  10. datas ends

  11. codes segment
  12. start:  mov ax,datas
  13.         mov ds,ax
  14.         mov si,0
  15.         mov cx,4
  16. s0:
  17.         push cx
  18.         mov bx,0
  19.         mov cx,4
  20. s1:
  21.         mov al,byte ptr[si+3+bx]
  22.         and al,11011111b
  23.         mov byte ptr[si+3+bx],al
  24.         inc bx
  25.         loop s1

  26.         pop cx
  27.         add si,10H
  28.         loop s0

  29.         mov ax,4c00h
  30.         int 21h
  31. codes ends
  32. end start
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-29 16:31:53 | 显示全部楼层
jackz007 发表于 2022-5-26 22:00
像下面这样定义堆栈段,你无需用任何代码初始化 SS 和 SP 值,而且,你会发现,连接时,前面给 ...

大佬,有什么方法解决编译器无法编译的问题吗,自从我发这个帖子之后,编译器什么也编译不了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-29 16:47:09 | 显示全部楼层
竹逸 发表于 2022-5-29 16:31
大佬,有什么方法解决编译器无法编译的问题吗,自从我发这个帖子之后,编译器什么也编译不了

       编译器给出的响应信息是什么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-7 20:12:04 | 显示全部楼层
jackz007 发表于 2022-5-29 16:47
编译器给出的响应信息是什么?

学汇编容易晕头转向,我现在都糊涂了又回头从新认认真真的从新学习一下,认真跟着课件做练习题,这样到后面就不会出现学的越多越迷糊了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-7 20:32:00 From FishC Mobile | 显示全部楼层
竹逸 发表于 2022-6-7 20:12
学汇编容易晕头转向,我现在都糊涂了又回头从新认认真真的从新学习一下,认真跟着课件做练习题,这样到后 ...

做习题固然重要,但是,关键是要理解和消化,否则的话,就是做再多的练习也不过是应付差事,自我安慰而已。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-10 12:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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