包含多个段的程序
assume cs:codea 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,0
mov bx,8
mov dx,10h
mov cx,8
s: mov ds:,ds:
add ds:,ds:
inc ax
inc bx
inc dx
loop s
mov ax,4c00h
int 21h
code ends
end start
怎么错了? 楼主`~!看了你的代码发现有两个问题
c segment
db 0,0,0,0,0,0,0,0
c ends
这段代码前面的标号“c"在编译器里面至少是你使用的MASM版本是认为错误的,改成其他的就行
代码的23和24行的错误就是你没使用寄存器交换数据,段与段之间直接交换数据时不行的
add也不能两个都是内存单元。 Dardy 发表于 2013-7-11 23:47 static/image/common/back.gif
add也不能两个都是内存单元。
回答的不错。加油! Dardy 发表于 2013-7-11 23:47 static/image/common/back.gif
add也不能两个都是内存单元。
Mark,申请转正的时候提醒我给你颁发一个乐于助人的勋章~~~ 小甲鱼 发表于 2013-7-12 02:12 static/image/common/back.gif
Mark,申请转正的时候提醒我给你颁发一个乐于助人的勋章~~~
这想法早准备好了。 281595933 发表于 2013-7-11 23:15 static/image/common/back.gif
楼主`~!看了你的代码发现有两个问题
c segment
db 0,0,0,0,0,0,0,0
o 确实 换了就行了 Dardy 发表于 2013-7-11 23:47 static/image/common/back.gif
add也不能两个都是内存单元。
哦 ,两个内存单元的都不醒 还是只有add不行?
要通过寄存器转存,比如把源内存单元数据存到通用寄存器里,在把寄存器的数据存到目的内存单元。 本帖最后由 ★远处的灯火 于 2013-7-13 20:29 编辑
assume cs:code,ds:data
data segment
db 1,2,3,4,5,6,7,8
db 1,2,3,4,5,6,7,8
db 0,0,0,0,0,0,0,0
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov cx,8
s: mov ax,
mov ds:,ax
mov ax,
add ,ax
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
照我这个代码试一试。{:7_169:} ★远处的灯火 发表于 2013-7-13 20:26 static/image/common/back.gif
assume cs:code,ds:data
data segment
成功了哎成功了哎成功了哎 回答的不错。加油!
页:
[1]