4_11.ASM
上传用户:xinbaokeji
上传日期:2022-07-05
资源大小:295k
文件大小:1k
源码类别:

汇编语言

开发平台:

Visual C++

  1. DATA   SEGMENT
  2. L1      DW    2
  3. STRING  DB   34H,98H
  4. L2      DW    ?
  5. BUFFER DB  2 * 2 DUP(?)
  6. DATA   ENDS
  7. STACK  SEGMENT PARA STACK 'STACK'
  8.         DB 100 DUP(?)
  9. STACK  ENDS
  10. CODE     SEGMENT
  11.           ASSUME  CS:CODE,DS:DATA,ES:DATA,SS:STACK
  12. START    PROC    FAR
  13. BEGIN:  PUSH  DS
  14.         MOV   AX, 0
  15.         PUSH  AX
  16.         MOV   AX,DATA
  17. uMOV   DS,AX ;DATA→AX
  18.         MOV   ES,AX
  19.     MOV   CX,L1
  20.     LEA   BX,STRING   
  21.     LEA   SI,BUFFER
  22.     MOV   AX,CX
  23.         SAL   CX,1
  24.     MOV   L2,CX
  25.     MOV   CX,AX
  26. AGAIN:  MOV   AL,[BX] ;
  27.     MOV   DL,AL                
  28.         AND   AL,0FH
  29.         CALL  CHANGE              
  30.         MOV   AL,DL
  31.         PUSH  CX      
  32.         MOV   CL,4
  33.         SHR   AL,CL
  34.         POP   CX
  35.         MOV   [SI] ,AL
  36.         CALL  CHANGE
  37.         MOV   AL,DL
  38.         INC   BX
  39.         LOOP  AGAIN
  40.         RET
  41. START    ENDP
  42. CHANGE PROC
  43.         CMP   AL,10
  44.         JL    ADD_0
  45.         ADD   AL,'a'-'0'-10 
  46. ADD_0:  ADD   AL,'0'
  47.         MOV   [SI],AL
  48.         INC    SI
  49.         RET
  50. CHANGE  ENDP     
  51. CODE ENDS ;
  52. END BEGIN