高分求大神帮忙!NTVDM CPU遇到无效指令关闭

aichitangdexigua 2011-11-17 11:00:01
输入小写,逆向输出大写,下面是程序
data segment
xiao db 100
db 0
db 100 dup('$')
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov di,offset xiao

mov ah,0ah
mov dx,di
int 21h
xor ax,ax
mov al,[di+1]
mov al, bh;标志下次区变大写的循环
mov bp,ax
lea si,[di+2]
mov bl,2
div bl
xor cx,cx
mov cl,al
min:
mov al,[si]
mov bl,[si+bp-1]
mov [si+bp-1],al
mov [si],bl
inc si
dec bp
dec bp
loop min
xor cx,cx
mov cl,bh
lea si,[di+2]
ni:
cmp byte ptr[si],'a'
jb hao
cmp byte ptr[si],'z'
ja hao
sub byte ptr[si],20h
hao:
inc si
loop ni

mov dl,0ah
mov ah,02h
int 21h

lea dx,[di+2]
mov ah,09h
int 21h

mov ah,0
int 16h
mov ax,4c00h
int 21h
code ends
end start
编译连接没有错误,可是当运行输入,字母也能显示,可是当按回车键的时候出现 NTVDM CPU 遇到无效的指令
cs:0000 ip:0077 op:fo 37 05 10 02
选择关闭终止应用程序
在多台电脑上面实验都是这个结果
...全文
165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aichitangdexigua 2011-11-21
  • 打赏
  • 举报
回复
侯佩大侠,什么时候能够出现[Quote=引用 2 楼 mydo 的回复:]
指令流跑偏,导致遇到无效指令,建议监控一下指令流
[/Quote]
aichitangdexigua 2011-11-21
  • 打赏
  • 举报
回复
哇,是侯佩大侠啊,我找您很久很久了,神啊,居然出现了[Quote=引用 2 楼 mydo 的回复:]
指令流跑偏,导致遇到无效指令,建议监控一下指令流
[/Quote]
zara 2011-11-17
  • 打赏
  • 举报
回复
>> mov al, bh ;标志下次区变大写的循环
上面这指令什么意思?它清除了了 al 里的输入的字符的个数,导致后面的 loop 循环溢出,将代码乱改了,最后程序崩溃。
大熊猫侯佩 2011-11-17
  • 打赏
  • 举报
回复
指令流跑偏,导致遇到无效指令,建议监控一下指令流

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧