. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->标志寄存器
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  我的实验11,请指教  [已解决] 回复[ 2次 ]   点击[ 508次 ]  
masmaster
[帖 主]   [ 发表时间:2010-06-19 09:42 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
assume  cs:code
data    segment
str     db      "Beginner's All-purpose Symbolic Insturnction Code.",0,'$'
data    ends
code    segment
letterc:
        push si          ;保存si
s0:     mov al,[si]      
        cmp al,0         
        jz done          ;为零结束
        cmp al,61h       ;如果≥a
        jge s1           ;则转至s1
        inc si           ;否则返回继续下一字符
        jmp s0           ;
s1:     cmp al,7ah       ;如果≤z
        jle s2           ;则开始转换
s2:     sub al,20h       ;减20h得到大写字母
        mov [si],al
        inc si
        loop s0
done:   pop si           ;恢复si
        ret
;
start:
        mov ax,data
        mov ds,ax
        mov si,0
        call letterc
;输出验证一下
        mov dx,offset str
        mov ah,09h
        int 21h

        mov ah,4ch
        int 21h
code    ends
        end     start


d:\asm>
masmaster
[第1楼]   [ 回复时间:2010-06-19 15:51 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
上面的有问题, 这回就没问题啦。 欢迎指正!
d:\asm>type l2u.asm
assume  cs:code
data    segment
str     db      "Beginner's All-purpose Symbolic Insturnction Code!",0,'$'
data    ends
code    segment
letterc:
        push si
s0:     mov al,[si]
        cmp al,0
        jz done
        cmp al,61h
        jge s1
        inc si
        jmp s0
s1:     cmp al,7ah
        jle s2
        inc si
        jmp s0
s2:     sub al,20h
        mov [si],al
        inc si
        loop s0
done:   pop si
        ret
start:  mov ax,data
        mov ds,ax
        mov si,0
        call letterc
        mov dx,offset str
        mov ah,09h
        int 21h
        mov ah,4ch
        int 21h
code    ends
        end     start


d:\asm>
masmaster
[第2楼]   [ 回复时间:2010-06-20 12:33 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
此贴由 贴主 于 [ 2010-06-20 12:33 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved