傲雪 发表于 2011-11-21 11:34:50

这个程序是不是有错误?mov ss:[bx],al这样可以吗?

assume cs:code
a segment
         db 1,2,3,4,5,6,7,8
a ends

b segment
      db 1,2,3,4,5,6,7,8
b ends

c segment
      db 0,0,0,0,0,0,0,0
c ends

code segment
start:mov ax,a
      mov ds,ax

      mov ax,b
      mov es,ax

      mov ax,c
      mov ss,ax

      mov bx,0
      mov cx,8
    s:mov ah,0
      mov al,ds:
      add al,es:
      mov ss:,al
      inc bx
      loop s

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

zgt2008 发表于 2011-11-21 12:22:34

mov ss:,al 应该没有问题 一般用mov ,al

zgt2008 发表于 2011-11-21 12:23:21

默认应该就是 栈段

Drivewin 发表于 2011-11-21 12:39:29

ztc123 发表于 2011-11-21 12:56:33

没错,这样可以

风扫地 发表于 2011-11-21 13:03:06

c不能做段名。换个名字吧

关键是感觉 发表于 2011-11-21 14:08:49

指令格式正确

嗜血灵异狂 发表于 2011-11-21 19:54:31

a 是什么    b是什么?   c是什么:虽然我们知道a是数据   c是栈可是你在前面都不声明就使用肯定错误了   assume cs:code   ds:a    ss:c   es:b:dizzy:

kane080824 发表于 2011-11-21 20:46:47

除了cs段,虽然别的段可以不进行assume,但建议还是尽量声明下,比较清楚,楼主程序没什么错,就是c做段名会报错,改下应该可以运行的

sx徐 发表于 2011-11-23 19:15:26

应该会报警 但不报错

sx徐 发表于 2011-11-23 19:17:23

因为栈只能进行字操作
页: [1]
查看完整版本: 这个程序是不是有错误?mov ss:[bx],al这样可以吗?