鱼C论坛

 找回密码
 立即注册
查看: 142|回复: 2

这段代码有什么问题

[复制链接]
发表于 2024-11-2 12:44:08 | 显示全部楼层 |阅读模式

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

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

x
assume cs:c,ds:d
d segment
  dw 0000H, 0011H, 0022H, 0033H, 0044H, 0055H, 0066H, 0077H, 0088H
  dw 0099H, 7777H, 2022H, 2033H, 2044H, 2055H, 2066H, 2077H, 2088H, 2099H, 2000H
  dw 0000H, 0011H, 0022H, 0033H, 0044H, 0055H, 0066H, 0077H, 0088H, 0099H

  dw 1011H, 1022H, 1033H, 1044H, 1055H, 1066H, 1077H, 1088H, 1099H, 1000H
  dw 2011H, 2022H, 2033H, 2044H, 2055H, 2066H, 2077H, 2088H, 2099H, 2000H
  dw 32 DUP(0)
d ends
c segment
start:
  mov ax,d
  mov ds,ax
  mov es,ax
  mov si,0
  mov di,40
  mov bx,100
  mov cx,50
l:
  cmp cx,0
  je e1
  cmp word ptr [si],word ptr [di]
  ja l1
  mov ax,[si]
  mov es:[bx],ax
  add si,2
  jmp l2
l1:
  mov ax,[di]
  mov es:[bx],ax
  add di,2
l2:
  add bx,2
  dec cx
  jmp l
e1:
  cmp word ptr [si],0
  je e2
  mov ax,[si]
  mov es:[bx],ax
  add si,2
  add bx,2
  cmp word ptr [si],0
  jne e1
e2:
  cmp word ptr [di],0
  je e3
  mov ax,[di]
  mov es:[bx],ax
  add di,2
  add bx,2
  cmp word ptr [di],0
  jne e2
e3:
  mov ax,4c00h
  int 21h
c ends
end start

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

使用道具 举报

发表于 2024-11-2 12:44:28 | 显示全部楼层
这段汇编代码存在几个问题,主要集中在语法和逻辑上:

1. **缺少操作数**:在 `cmp` 和 `mov` 指令中,缺少操作数。例如:
   - `cmp word ptr ,word ptr` 缺少具体的内存地址或寄存器。
   - `mov ax,` 和 `mov es:,ax` 缺少源或目标操作数。

2. **未定义的标签**:代码中使用了 `l1`, `l2`, `e1`, `e2`, `e3` 等标签,但没有明确的跳转目标或逻辑。

3. **段寄存器设置**:虽然 `mov ax,d` 设置了 `ds` 和 `es` 段寄存器,但在后续代码中没有明确的内存地址操作,可能导致段内存访问错误。

4. **逻辑错误**:代码逻辑不清晰,特别是在循环和条件跳转部分,可能导致死循环或意外行为。

要修复这些问题,需要明确每个指令的操作数,并确保逻辑流程正确。建议逐步调试和验证每个部分的功能。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-11-2 14:41:12 From FishC Mobile | 显示全部楼层
本帖最后由 jackz007 于 2024-11-2 17:17 编辑

        因为汇编语言不支持两个内存地址内容的直接比较,所以,这一句代码有错:
    cmp word ptr [si],word ptr [di]
        应该改为:
    mov ax,word ptr[si]
    cmp ax,word ptr [di]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-21 22:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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