鱼C论坛

 找回密码
 立即注册
查看: 3162|回复: 2

[技术交流] 实验11的代码,自己敲的

[复制链接]
发表于 2011-7-25 15:27:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
感觉代码有点混乱,跳转比较多,还好我都做了注释了,方便大家

  1. assume cs:code
  2. data segment
  3. db "Beginner's All-purpose Symbolic Instrution Code.",0
  4. data ends
  5. code segment
  6. start: mov ax,data
  7.        mov ds,ax
  8.     mov si,0
  9.     mov bx,0
  10.     mov cx,0
  11.     call letter         
  12.     mov ax,4c00h
  13.     int 21h
  14.       
  15. letter: mov bl,[si]           ;   把si的内容给bl
  16.         mov cl,[si]          ;    把si的内容给cl,判断cx是不是为0
  17.      cmp bl,30h       ;  最近新学的判断指令,主要判断bl是不是大与30,因为标点符号的ASCII码都小于30H
  18.      jna s              ; CF为1就跳转到S去
  19.      and bx,11011111b      ;  把字母转换成大写的关键
  20.   mov [si],bl           ;  把转换成大写的字母,再放回原来的内存中
  21.   inc si               
  22.   loop letter          ;  这是循环,所以才有了上面的mov cl,[si],不然一开始cx=0就不会循环了
  23.   
  24.   ok: ret                  ;  这是和call配套的,就是转移到call的下面的代码去执行  
  25.      s: mov [si],bl           ;  CF为1就跳过来执行,把标点符号直接原样复制到[si]里面
  26.      inc si              
  27.   jcxz ok               
  28.      jmp short letter         
  29.   
  30.   code ends
  31.   end start
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-7-26 09:27:11 | 显示全部楼层
这个要研究一下
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-7-2 11:03:51 | 显示全部楼层
看看老帖,支持下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-6 13:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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