汇编语言程序设计实验8 分支程序设计

【实验目的】

掌握分支程序的基本编程方法。熟悉进制转换。用LOOP指令、条件转移指令和向量地址法实现程序转移。

【实验内容】

【1】编写程序,如果输入的是大写字母,则输出对应的小写字母;如果输入的是小写字母,则输出对应的是大写字母;如果输入的是数字,原样输出;按回车结束。

【2】分离字数组ARRAY中的正、负数,把其中的正数复制到PDATA数组;负数复制到NDATA数组,并分别统计正、负数个数。

【3】在数据段定义分支地址表,通过键盘输入数字1~8,实现转移。要求:

    (1)分支表定义如下:PTABLE DW P1,P2,P3,P4,P5,P6,P7,P8

    (2)P1~P8为标号,如果键盘输入数字3,则从分支地址表中取出P3的地址,实现间接转移。标号处的指令只是显示一个信息。

【实验过程】

【实验1】思路:

读入字符串并存放到缓冲区。循环处理字符串中的每个字符直到遇到回车结束。不考虑非法输入,对于每个字符:如果小于41h说明为数字,直接跳到输出;如果大于41h但小于4ah说明为小写字母,将其ASCII码加20h转为大写字母;否则说明为大写字母,将其ASCII码减20h转为小写。最后输出转换后的字符串即可.注意用0ah功能读入字符串,在dx+2处开始存放第一个字符。

缓冲区定义如下:

程序主体如下:

运行测试。假设输入的串为IloveAHU2023

输入后运行结果: (输入回车后会覆盖输入串,所以分开截图)

【实验2】数据段定义如下,定义了array,pdata,ndata和正/负数计数器:

程序主体部分如下:用LOOP检测array中的每个数的正负性,对正数和负数分别进行处理(放到对应的数组并累计个数)

使用debug查看运行结果。根据debug查看和内存存放的相关知识,可知array,pdata,ndata,cpos,cneg分别位于DS:0000,DS:0010,DS:0020,DS:0030,DS:0032

使用debug运行程序并查看DS段的值:

可以看到pdata数组(DS:0010起始)存放了所有的正数,ndata数组(DS:0020起始)存放了所有的负数,正数和负数的个数分别为5和3.

【实验3】(略去定义部分)由于PTABLE是字数组,所以读入数字*2对应下标

    

如上,数字对应的标号执行的内容为将数字对应的大写字母存放在DL里,并跳转到ed输出。

运行程序,符合预期结果。(第一个字符为输入,第二个字符为输出)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值