zoukankan      html  css  js  c++  java
  • 寒假汇编语言作业(5)

    程序设计项目五

     

    定义一个数据段如下:

    data segment

        db 'h12E332l@L#O*&^!88nI@cE$% %$T1O m33E44E55t y77O88u!()'

        db '?'

    data ends

    注意:第一行字符串为待处理的数据,'?'为字符串结束符号。

     

    设计程序完成如下操作:

    (1)去掉除字母、空格、'!'之外的字符;

    (2) 通过内存间的数据交换,将数据段中的字符串修改为'Hello!Nice to meet you!';

    (3)在屏幕正中打印处理好后的数据。

     

    完成程序后思考:

    (1)如何设计程序,程序代码量最少;

    (2)如何设计程序,程序执行速度最快;

    (3)如何设计程序,使得程序具有通用性。

    注意:

    (1)'?'、'!'和空格分别假定为字符串的结束符、一句话的最后的标点和单词间的间隔符,都不属于干扰符号。

    (2)这里的通用性是指:任意带有其他符号干扰的一组字符串都能够通过程序被处理为具有如下特点的英文段落:段落中只包含字母、空格、'!'三种符号。段落中的每句话都是以开头字母为大写,'!'为结束标点的句子。

     

    感觉写的还是有点乱

    参考程序:

     1 assume cs:code
     2 data segment
     3     db 'h12E332l@L#O*&^!88nI@cE$% %$T1O m33E44E55t y77O88u!()'
     4     db '?'
     5 data ends
     6 
     7 stack segment
     8         dw 8 dup (0)
     9 stack ends
    10 
    11 code segment
    12 start:
    13         mov ax,data
    14         mov ds,ax
    15         mov ax,0b800h
    16         mov es,ax
    17         mov ax,stack
    18         mov ss,ax
    19         mov sp,10h
    20         mov si,0
    21         mov di,2140
    22         mov bp,0
    23         mov cx,1      ;默认大写开始  cx=1大写  cx=0小写
    24 
    25     main_L:              ;主循环
    26         mov al,ds:[si]
    27         mov ah,71h
    28         cmp al,'?'
    29         je ok_mL
    30         cmp al,'!'
    31         je do_gankan      ;置位
    32         cmp al,' '
    33         je pprint
    34         or al,00100000b
    35         cmp al,'a'
    36         jb move_shuju   ;清理不识别字符
    37         cmp al,'z'
    38         ja move_shuju
    39         jcxz pprint       ; 判断大小写
    40         and al,11011111b
    41         mov cx,0
    42 
    43     pprint:           ;打印,清理
    44         call get_shuju
    45         jmp print
    46 
    47     go_next: 
    48         inc si
    49         jmp main_L
    50 
    51     ok_mL:
    52         mov ax,4c00h
    53         int 21h
    54 
    55     do_gankan:
    56         mov cx,1
    57         jmp pprint
    58 
    59     print:
    60         mov es:[di],ax
    61         add di,2
    62         jmp go_next
    63 
    64     move_shuju:
    65         mov byte ptr ds:[si],0
    66         jmp go_next
    67 
    68     get_shuju:
    69         mov byte ptr ds:[si],0
    70         mov ds:[bp],al
    71         inc bp
    72         ret
    73 
    74 code ends
    75 end start
    hj5.asm
  • 相关阅读:
    OnboardSDK分析
    Ubuntu14.04安装pycharm用于Python开发环境部署,并且支持pycharm使用中文输入
    TCP/IP四层模型和OSI七层模型的概念
    二分查找
    Combination Sum
    全面解析回溯法:算法框架与问题求解
    Search Insert Position
    过滤器
    Java中Web页面信息获取
    jQuery和Ajax联动
  • 原文地址:https://www.cnblogs.com/regconfi/p/4236522.html
Copyright © 2011-2022 走看看