OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6032|回复: 5

菜鸟汇编问题

[复制链接]

31

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2012-3-19
在线时间
2 小时
发表于 2012-3-22 12:14:11 | 显示全部楼层 |阅读模式

.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
 jb 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



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

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2012-3-22 12:27:25 | 显示全部楼层
汇编我基本不会...帮不了你了,等高手拆招吧.呵呵.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

36

主题

1115

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2194
金钱
2194
注册时间
2012-2-8
在线时间
34 小时
发表于 2012-3-22 14:15:10 | 显示全部楼层

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

https://github.com/roxma
回复 支持 反对

使用道具 举报

31

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2012-3-19
在线时间
2 小时
 楼主| 发表于 2012-3-22 15:07:29 | 显示全部楼层
回复【3楼】Pony279:
---------------------------------
什么跳转指令?我初学的不懂,望高人指导
回复 支持 反对

使用道具 举报

31

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2012-3-19
在线时间
2 小时
 楼主| 发表于 2012-3-22 22:31:09 | 显示全部楼层
好吧,经过努力,终于调试好了
.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
回复 支持 反对

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2012-11-24
在线时间
0 小时
发表于 2013-1-26 15:52:22 | 显示全部楼层
看了两天汇编了,比我想象的复杂好多。继续努力
  I CAN BE BETTER
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-5-29 07:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表