实验五第五题
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 es,ax
mov ax,c
mov ds,ax
mov bx,0
mov cx,8
s: mov al,es:
mov ,al
inc bx
loop s
mov ax,b
mov es,ax
mov bx,0
mov cx,8
s1: mov al,es:
add ,al
inc bx
loop s1
mov ax,4c00h
int 21h
code ends
end start
编译的时候总是在 a,b,c segment 代码行报错不知道什么原因?大佬们帮忙解释一下!!谢谢 我这个用的是一个循环写的 本帖最后由 jackz007 于 2022-5-10 22:07 编辑
楼主的代码用 MASM 5.10b 编译不存在任何问题。
不过,代码可略作简化如下:
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,c
mov ds,ax
xor bx,bx
mov cx,8
push bx
push cx
mov ax,a
mov es,ax
s1: mov al,es:
mov ,al
inc bx
loop s1
mov ax,b
mov es,ax
pop cx
pop bx
s2: mov al,es:
add ,al
inc bx
loop s2
mov ax,4c00h
int 21h
code ends
end start
jackz007 发表于 2022-5-10 22:00
楼主的代码用 MASM 5.10b 编译不存在任何问题。
不过,代码可略作简化如下:
谢谢 楼主的代码我运行着也没问题,我的写法可能有点不太规范,因为这个程序没有用到栈,我把ss也拿来当附加段用了,只用一个循环就可以:
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 ss,ax
mov ax,c
mov es,ax
mov bx,0
mov cx,8
s:mov al,ds:
add al,ss:
mov es:,al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
页:
[1]