• 汇编:输出寄存器AX中的内容(子程序)


     1 ;输出寄存器AX中的内容(子程序)
     2 DATAS segment
     3     
     4 DATAS ends
     5 CODES segment
     6 START:
     7     mov AX,DATAS
     8     mov DS,AX
     9     ;正式代码开始
    10     mov AX,1AF4H        ;设置需要显示的AX的值
    11     call PrintAX
    12     mov al,0
    13     mov ah,4CH
    14     int 21H
    15 
    16 PrintAX proc
    17     jmp Next    
    18     Temp db '0000H','$'
    19 Next:    
    20     mov si,offset Temp+3;保存存储结果的字符串的最后一个字符偏移地址
    21     xor cx,cx           ;对cX清零
    22     mov cl,4            ;设置循环次数为4次
    23 
    24 MainPart:
    25     mov DH,AL           ;将Al的内容传送给DH
    26 
    27     shr AX,1
    28     shr AX,1
    29     shr AX,1
    30     shr AX,1
    31                 ;上述4句为使AX逻辑右移4位 理论上可以写成 shr AX ,cl(cl设置为4) 
    32                 ;但这个地方cl要记录循环次数每次循环会是cl-1所以无法满足正常的移位需要
    33     and dh,0FH
    34     add dh,30H
    35     cmp dh,':'  ;':'的ASCII比9大1 而字母的ASCII码与数字的ASCII码中间隔了7个其它字符
    36     ja isLetter ;如果为字母则跳转
    37     jb No       ;如果不是
    38 
    39 isLetter:
    40     add dh,7H   ;ASCII码加7变为字母
    41 No:
    42     mov [si],dh ;将字符存入,待存放内容的字符串的对应位置
    43 
    44     dec si      ;待存放内容的内存地址自减1
    45 loop MainPart
    46 
    47 print:   
    48     mov dx,offset Temp  ;将带打印的字符串的偏移地址存放进dx中
    49     mov ah,09           ;设置DOS 09号功能
    50     int 21H         ;功能调用
    51     ret
    52 PrintAX endp
    53 
    54 CODES ends
    55     end START
  • 相关阅读:
    Python获取 东方财富 7x24小时全球快讯
    Elasticsearch 环境配置
    可执行jar包与依赖jar包
    IDEA注释模板
    CKEditor
    解决让浏览器兼容ES6特性
    asp.net一个非常简单的分页
    Asp.Net真分页技术
    jsp选项卡导航实现——模板
    nodejs类比Java中:JVM
  • 原文地址:https://www.cnblogs.com/roseAT/p/10240746.html
Copyright © 2020-2023  润新知