汇编语言程序结构

顺序结构

  1. 从键盘读入一个2位的十进制的正整数,
    存入BL中。
    思路:逐位读取
    要点:将字符转化为对应的数字
    在这里插入图片描述
    字符的后四位刚好对应其数字

分支结构

单分支

就是一共两个分支,其中一个分支不需要处理
在这里插入图片描述
例:计算AX的绝对值
思路分两个支路,正的时候不处理,负的时候取其补码(相反数)
在这里插入图片描述

双分支

两个都要处理,所以不能像单分支那样一个分支直接跳到最后。
在这里插入图片描述
例:显示BX最高位
思路,一个分支将dl赋值为1另一个分支赋值为0,最后显示
在这里插入图片描述

多分支

在这里插入图片描述
在这里插入图片描述
例:根据键盘输入的1~8数字转向不同的处理程序

思路:
1.写出8个分支,最后都有跳转向结尾的jmp指令,然后将这些标号给地址表。
2.将输入的字符转化为对应数字,然后得到对应地址表中的位置
3.跳转到地址表对应的分支处。
在这里插入图片描述
在这里插入图片描述

循环结构

在这里插入图片描述
例:将一个字符串中所有大写字母改为小写
思路:逐位判断,如果是小写就直接下一轮,否则就转为小写再下一轮直到读到结尾。
在这里插入图片描述
例二:把BX中的二进制数以十六进制的形
式显示在屏幕上
思路:将bx从高到低4位4位地转化为对应的十六进制字符并显示。
在这里插入图片描述

子程序结构

就是调用函数
函数格式:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在过程定义体内,必须有一条RET指令
能被执行到。

  • 调用时,最好不要强制改变调用类型。

  • 子程序保护现场。push,pop
    在这里插入图片描述

  • 堆栈操作指令必须配对。(不清楚,估计是指上面的push和pop要对应)

  • 定义允许嵌套和递归

在这里插入图片描述
接下来逐一介绍:

通过内存

在这里插入图片描述

用寄存器

在这里插入图片描述

用堆栈

在这里插入图片描述

传进来的参数如何获取

在这里插入图片描述
需要一个能在栈段里动的寄存器,SP作为栈顶指针不能随便动,所以
就用BP了,但在此之前先将BP的原址存起来。
在这里插入图片描述
于是我们可以根据call的类型来得到BP加上几才能到达参数的地方

返回值输出

在这里插入图片描述
汇总:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
例:从键盘输入有符号十进制数子程序
思路:
在这里插入图片描述
关键:如何将一个数字乘10:x8+x2
在这里插入图片描述
在这里插入图片描述
例:输出有符号十进制数子程序
提示:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值