8086汇编——通过宏和子程序实现输出最大值

今天晚上做了汇编的一个小作业,虽然题目很简单,但由于自己基础比较差,还是花费了大概一个半小时的时间去做。

本来还想好好总结一下。整理了一下思路,发现好像困扰我一个多小时的问题只有没有发现endif中间加了个空格,很蠢。不过我还是整理下需要注意的地方吧。

题目要求通过定义宏max来将三个或两个数中最大的一个存储到ax里,并通过十六进制的形式输出到屏幕上。

所以问题的关键在于定义宏max和子程序binihex。max需要注意的点在于需要对三个数,两个数,一个数的情况进行不同考虑,这里课本上用到了条件伪指令IF,但其实通过jmp也能实现,只是结构会显得比较乱。

binihex在之前的实验中其实已经做过,基本思路就是通过逻辑左移指令循环将四位十六进制整数的最左边一位挪到最右边,然后将这一位取出来,并按照ascii码输出。

程序如下:

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注