综合技术
直播中

杜茂仁

7年用户 230经验值
私信 关注
[问答]

汇编程序求指导

.model large
.stack 128
.data
infon db 0dh,0ah,'Please input a letter: $'   
     Y db 0dh,0ah,'Lowercase letter! $'   
     N db 0dh,0ah,' capital letter!Its little letter is '
.code
start:
mov ax, @data
mov ds, ax
mov es, ax

mov dx,offset infon  ;输出提示信息
mov ah,9h
int 21h
mov ah,1             ;键盘输入并回显
int 21h
cmp al,61h  ;输入的字母和a比
ja yes
*** no
yes:   
mov dx,offset Y  ;是小写字母则输出
mov ah,9h
int 21h

no:     
mov dx,offset N  ;是大写字母则转换并输出
mov ah,9h
int 21h
add al,20h
mov dl,al
mov ah,2
int 21h

mov ax,4c00h
int 21h
ends start
上面是我写的一个程序,功能是把键盘输入的字母先判断是不是小写字母,如果不是,把他转化为小写字母,可是出来的程序和我预想的差别很大,我也知道程序有问题,可是第一次写汇编,不懂弄,求高手帮我看看

回帖(5)

赵晶晶

2019-3-12 10:29:23
汇编我基本不会...帮不了你了,等高手拆招吧.呵呵.
举报

王志强

2019-3-12 10:34:26
yes:   
mov dx,offset Y  ;是小写字母则输出
 mov ah,9h
 int 21h
; 请问这里不需要跳转指令吗?
no:    
mov dx,offset N  ;是大写字母则转换并输出
 mov ah,9h
 int 21h
add al,20h
 mov dl,al
 mov ah,2
 int 21h
举报

曹昆

2019-3-12 10:48:52
什么跳转指令?我初学的不懂,望高人指导
举报

刘晓寰

2019-3-12 11:03:17
好吧,经过努力,终于调试好了
.model small
.data
  infon db 0dh,0ah,'Please input a letter: $'
  Y db 0dh,0ah,'Lowercase letter! $'
  N db 0dh,0ah,' capital letter!Its little letter is $' ;这里最后少了一个美元符号
.code
start:
  mov ax, @data
  mov ds, ax
  mov dx,offset infon
  mov ah,9h
  int 21h
  mov ah,1
  int 21h
  push ax
  cmp al,61h
  jge yes
  jl no
yes:
  mov dx,offset Y
  mov ah,9h
  int 21h
  jmp done
no:
  mov dx,offset N
  mov ah,9h
  int 21h
  pop ax
  add al,20h
  mov dl,al
  mov ah,2
  int 21h
done:
  mov ax,4c00h
  int 21h
end start
举报

更多回帖

发帖
×
20
完善资料,
赚取积分