飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3457|回复: 3

[C/C++] ASM_16 作业

[复制链接]
  • TA的每日心情
    郁闷
    2017-1-19 11:18
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2010-12-20 20:22:12 | 显示全部楼层 |阅读模式
    本帖最后由 komany 于 2010-12-22 10:12 编辑
    1. assume cs:code
    2. data segment
    3. Nisy db 'Hello,Nisy!$'
    4. Komany db 'Hello,komany!$'
    5. China db 'Hello,China!$'
    6. ASM db 'Hello,ASM!$'
    7. data ends
    8. code segment
    9. start:
    10. mov ax,data
    11. mov ds,ax
    12. call fun_1
    13. call fun_2
    14. call fun_3
    15. call fun_4
    16. mov ax,4c00h
    17. int 21h
    18. fun_1: push cx
    19. push si
    20. push dx

    21. mov cx,11
    22. mov si,0

    23. mov bx,offset Nisy
    24. s1: mov al,[bx+si]
    25. cmp al,2ch
    26. jz next1
    27. cmp al,'!'
    28. jz next1
    29. and al,11011111b
    30. mov [bx+si],al
    31. next1: inc si
    32. loop s1

    33. mov ax,0900h
    34. mov dx,offset Nisy
    35. int 21h
    36. pop dx
    37. pop si
    38. pop cx
    39. retn
    40. fun_2: push cx
    41. push si
    42. push dx

    43. mov cx,13
    44. mov si,0
    45. mov bx,offset Komany
    46. s2: mov al,[bx+si]
    47. cmp al,2ch
    48. jz next2
    49. cmp al,'!'
    50. jz next2
    51. and al,11011111b
    52. mov [bx+si],al
    53. next2:
    54. inc si
    55. loop s2
    56. mov ax,0900h
    57. mov dx,offset Komany
    58. int 21h
    59. pop dx
    60. pop si
    61. pop cx
    62. retn
    63. fun_3: push cx
    64. push si
    65. push dx

    66. mov cx,12
    67. mov si,0
    68. mov bx,offset China
    69. s3: mov al,[bx+si]
    70. cmp al,2ch
    71. jz next3
    72. cmp al,'!'
    73. jz next3
    74. and al,11011111b
    75. mov [bx+si],al
    76. next3: inc si
    77. loop s3
    78. mov ax,0900h
    79. mov dx,offset China
    80. int 21h
    81. pop dx
    82. pop si
    83. pop cx
    84. retn
    85. fun_4: push cx
    86. push si
    87. push dx

    88. mov cx,10
    89. mov si,0
    90. mov bx,offset ASM
    91. s4: mov al,[bx+si]
    92. cmp al,2ch
    93. jz next4
    94. cmp al,'!'
    95. jz next4
    96. and al,11011111b
    97. mov [bx+si],al
    98. next4: inc si
    99. loop s4
    100. mov ax,0900h
    101. mov dx,offset ASM
    102. int 21h
    103. pop dx
    104. pop si
    105. pop cx
    106. retn
    107. code ends
    108. end start
    复制代码
    PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2017-1-19 11:18
  • 签到天数: 6 天

    [LV.2]偶尔看看I

     楼主| 发表于 2010-12-22 18:59:00 | 显示全部楼层
    本帖最后由 komany 于 2011-1-1 22:19 编辑


    复制代码
    1. assume cs:code
    2. data segment
    3. Nisy db 'Hello,Nisy! $'
    4. Komany db 'Hello,komany! $'
    5. China db 'Hello,China! $'
    6. ASM db 'Hello,ASM! $'
    7. data ends
    8. code segment
    9. start:
    10. mov ax,data
    11. mov ds,ax

    12. call fun_change_str

    13. mov ax,4c00h
    14. int 21h

    15. fun_change_str: push cx
    16. push si
    17. push bx
    18. mov bx,offset Nisy
    19. mov si,0
    20. mov cx,04h

    21. s: mov al,[bx+si]
    22. cmp al,','
    23. je next
    24. cmp al,'!'
    25. je next
    26. cmp al,' '
    27. je next
    28. cmp al,'$'
    29. je next1
    30. and al,11011111b
    31. mov [bx+si],al
    32. next:
    33. inc si
    34. jmp s

    35. next1: xor si,si
    36. mov ax,0900h
    37. mov dx,bx
    38. int 21h
    39. add bx,16
    40. loop s
    41. end1:pop bx
    42. pop si
    43. pop cx
    44. ret

    45. code ends
    46. end start
    复制代码
    PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2017-1-19 11:18
  • 签到天数: 6 天

    [LV.2]偶尔看看I

     楼主| 发表于 2010-12-22 19:00:10 | 显示全部楼层
    修改版,多谢FBI指教,不仅修改了错误而且使思路更加清晰,不那么罗嗦了
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-12-24 13:56:00 | 显示全部楼层
    写的不错。。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表