FZU汇编作业 实验(四)

1、上机题目:代码转换
   内容:用子程序设计的方法,分别把BUF字单元中的四位十六进制数转换为ASCII码存入MAS开始的单元中,并在终端上显示MAS开始的4个字节单元。
    BUF  DW   X
    MAS  DB 4 DUP(?)
要求:熟练掌握子程序设计方法

代码:
     INCLUDE  IRVINE32.INC
.DATA
         BUF  WORD     012CDH
         MAS  byte      4 DUP(?)
.CODE
        MAIN  PROC
              CALL      CHANGE
exit
        MAIN  ENDP
      CHANGE  PROC
              MOV       CL,4        ;
              MOV       DX,BUF     ;
              mov       esi,0;              
.WHILE        CL>0
              DEC       CL          ;
              ROL       DX,4       ;
              mov       bx,dx;  
              and       bl,00001111b;                                        
.IF           bl<0AH
              ADD       bL,48       ;
              JMP       NEXT        ;
.ENDIF
              ADD       bL,55       ;
       NEXT:
              XOR       EAX,EAX     ;
              MOV       AL,bL       ;
              mov       mas[esi],al;
              add       esi,1;                                                        
              CALL      WRITEINT    ;
              call      crlf;              
.ENDW
              RET
      CHANGE  ENDP
              END       MAIN

2、上机题目:键盘输入
   内容:从键盘输入一串字母并保存在string开始的地址单元,要求将该字符串中的大写字母转化为小写字母后用子程序实现在终端上依次显示该串字母的 ASCII码。
   string db   n  dup(?)
要求:熟练掌握子程序设计方法,画子程序、主程序流程图

代码:
     INCLUDE  IRVINE32.INC
.DATA
        MAXN  BYTE      20          ;
      STRING  BYTE      20 DUP(?)   ;
           N  BYTE      ?           ;
.CODE
        MAIN  PROC
              CALL      READ        ;
              CALL      WRITE       ;
exit
        MAIN  ENDP
        READ  PROC
              MOV       EDX,OFFSET STRING       ;
              XOR       ECX,ECX     ;
              MOV       CL,MAXN     ;
              CALL      READSTRING  ;
              MOV       N,AL        ;
              RET
        READ  ENDP
       WRITE  PROC
              XOR       ECX,ECX     ;
              MOV       ESI,0       ;
              MOV       CL,N        ;
.WHILE        CL>0    ;
              DEC       CL          ;
              XOR       EAX,EAX     ;
              MOV       AL,STRING[ESI]          ;
.IF           AL<=90
              ADD       AL,32       ;
.ENDIF
              CALL      WRITEINT    ;
              CALL      CRLF        ;
              INC       ESI         ;
.ENDW
              RET
       WRITE  ENDP
              END       MAIN


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值