qq040404 发表于 2015-6-18 15:44:15

求指点哪里出错了


调试和运行都报错
下面上代码
;编写code段中的代码,用push指令将a段中的前8个字型数据逆序存储到b段中。
assume cs:code
a segment
               dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends       

b segment
               dw 0,0,0,0,0,0,0,0
b ends

code segment
start:
               mov ax,a
               mov ds,ax
               mov ax,b
               mov ss,ax
               mov sp,10
               mov bx,0
               mov cx,8
               
s:               push
               add bx,2
               
loop s                
mov ax,4c00h
               int 21
code ends
end start               

jies147 发表于 2015-7-1 11:02:37

a和b默认的都只有偏移地址,如果取段地址需要加seg,如
mov ax,seg a
mov ds,ax

流浪猫 发表于 2015-7-1 16:30:27

本帖最后由 流浪猫 于 2015-7-1 16:31 编辑

mov sp,10,导致栈空间不足存放数据,结果把系统重要数据改写了

fast 发表于 2015-7-6 00:57:21

各个pc的版本,系统有所差异,难免覆盖系统的数据,系统的自保功能就会启动。再换一段地址就好了{:1_1:}
希望对你有帮助

792257079 发表于 2015-7-30 19:24:39

第10行mov sp,10中的10改为10h

792257079 发表于 2015-7-30 19:26:09

第21行s:push改为s:push

初学者T阿杰 发表于 2015-7-31 21:00:53

虽然不明白,但是看着楼主的代码有种不舒服的感觉

1258187869 发表于 2015-8-3 22:23:00

代码真乱,没编译过,目测比较赞成5楼所说的。
页: [1]
查看完整版本: 求指点哪里出错了