king嗜血法师 发表于 2011-6-16 01:56:42

新手求助 实验九

assume cs:exe,ds:shuju,ss:zhan
shuju segment
db 'welcome to masm!'
db 02H,24H,71H
shuju ends
zhan segment
dw 8 dup (0)
zhan ends
exe segment
go : mov ax,shuju
   mov ds,ax
   mov ax,0b872h
   mov es,ax
   mov ax,zhan
   mov ss,ax
   mov sp,16
   mov bx,0
   mov si,0
   mov di,0
   mov cx,3
s: push cx
   push es
   mov cx,16
s0: mov al,ds:
   inc bx
   mov dl,ds:
   mov es:,al
   inc di
   mov es:,dl
   inc di
   loop s0
   
   xor di,di
   xor bx,bx
   inc si
   pop ax
   add ax,0ah
   mov es,ax
   pop cx
   loop s
   
   
   mov ax,4200H
   int 21H
exe ends
endgo

可以编译成可执行文件,但是运行却发生错误NTVDM cpu 遇到无效的指令。CS:0000 IP:0333 OP:f0 00 f0 68 09
选择“关闭”终止应用程序。
我用debug单步运行也没出现问题,-g 到mov ax,4200H也是正常的,问题出在哪?

winddyj 发表于 2011-6-16 16:00:40

这位同学看书也太不认真了吧
返回DOS的指令,ah要赋值4c,不是42
mov ax,4c00H
int 21H

king嗜血法师 发表于 2011-6-16 20:16:30

谢谢,是我弄错了,看来还是少了份细心`
页: [1]
查看完整版本: 新手求助 实验九