回 帖 发 新 帖 刷新版面

主题:将小写的字母转为大写的字母

要求按键入的顺序显示在屏幕上

回复列表 (共2个回复)

沙发

你是干什么的!?[em8]

板凳

ode segment                     ;代码段
     assume cs:code,ds:code
     org 100h                       ;从100h开始
start:jmp begin                  ;跳到begin
p1 db 100                   
p2 db 0
array db 100h dup(?)         ;置100个字节的缓冲区存放数据

begin:
      lea bx,array                 ;将array的首地址给bx
      mov ax,cs                    ;置cs-->ds
      mov ds,ax
      mov dx,offset p1           ;将p1的偏移量给dx
      mov ah,0ah                  ;调用中断21的0a号功能从键盘接收字符
      int 21h
      xor bx,bx                     ;将bx清零
      mov bl,p2                    ;p2-->bl
      mov array[bx],'$'          ;送'$'至字符串尾
      mov di,0ffffh                 ;-1-->di
next:inc di                        ;di自加
      cmp array[di],'$'           ;比较
      je  exit                         ;相等,则跳到exit执行
      cmp array[di],61h          ;(A~Z-->41h-5ah  a~z-->61h-7ah)与A比较
      jl  exit                            ;小于,则跳
      cmp array[di],7ah          ;与Z比较
      jg  exit                           ;大于,则跳
      sub array[di],20h
      jmp next                       ;减20h,小写转大写
disp:
      loop next
exit: mov p1,0dh                 ;回车换行
      mov p2,0ah
      mov ah,09h
      int 21h
      mov ah,4ch                    ;程序结束
      int 21h    
code ends
     end begin

我来回复

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