这个程序是将键盘输入的小写字母改成大写字母在屏幕显示,不是小写字母的就原样显示,遇到‘ESC’退出。
程序看着没有错误,‘out of memory ’问题可能是你在输入程序时有用中文输入法。
这个程序反复用键盘输入,如果是小写字母改成大写字母在屏幕显示,否则就原样显示,输入ESC退出。
again: mov ah,1
这一句确实错了,ah后面的“,”改为“,”就OK。
另外assume cs:code ds:data ss:stack
改为assume cs:code,ds:data,ss:stack
换成二进制,70-61就是70+61的补码,即1000110+1000011=(1)000 1001
问题中的61h是十六进制
data segment
message db 'This is a sample program of keyboard and disply'
db 0dh,0ah,'Please strike the key!',0dh,0ah,'$'
data ends
stack segment para stack 'stack'
db 50 dup(?)
stack ends
code segment
assume cs:code ds:data ss:stack
start:
mov dx,offset message
mov ah,9
int 21h ;输出信息'This is a sample program of keyboard and disply'
回车 并换行在输出'Please strike the key 回车换行
again:
mov ah,1 输入数据
int 21h
cmp al,1bh 若输入的数据为1bh则结束
je exit
cmp al,61h 若输入的数据小于61H大于7aH则输出该字符后结束程序,否则将数据的第六位屏蔽掉输出,可继续输入
jc nd
cmp al,7ah
ja nd
and al,11011111b
nd: mov dl,al
mov ah,2
int 21h
jmp again
exit: mov ah,4ch
int 21h
code ends
end start
错误是指空见不够了,你对堆栈段是申请的50个字节吧,早超了
发不了,发在我百度空间里了,你去看一下吧