回 帖 发 新 帖 刷新版面

主题:修改把大写变小写的程序

这个程序在输出的时候并没有把大写转换成小写,我不知道问题出现在哪里,还有为什么在输出的时候提示的显示信息也不是独立的一行?
.model small
        .data
msg     db   'Input numbers:',0dh,0ah,'$'
        .stack
        .code
        .startup
        mov bx,offset msg
        mov ah,9
        int 21h
        mov ah,01
        int 21h
begin:  mov ax,@data
        mov ds,ax
        mov ah,01
        int 21h
        mov al,[bx]
        cmp al,0dh
        jz  stop
        cmp al,'A'
        jb  next
        cmp al,'Z'
        ja  next
        add al,20h
        mov [bx],al
        mov dl,al
        mov ah,02
        int 21h
next:   inc bx
        jmp begin
stop:   .exit
        end

回复列表 (共2个回复)

沙发

mov bx,offset msg;mov dx,offset msg
        mov ah,9
        int 21
应该是用dx做参数

板凳

第一个错误楼上说了
其次,
mov ah,01
int 21h
mov al,[bx]
你这样,21h中断输入的字符放在al中,结果你又mov al,[bx]就覆盖掉了al内容,
再者,不明白你为什么用[bx],且内存中没相应定义,bx指向哪不明确,初始时一般寄存器值为0,估计是指令不熟悉,用错了。


我来回复

您尚未登录,请登录后再回复。点此登录或注册