汇编语言两位数的乘法
宏汇编(两位数的乘法)
本人比较菜,第一次在CSDN上写博客,怕学过的东西忘记就写下了这篇关于汇编宏的使用的博客,以后还能找到。
具体题目如下:
定义宏,完成两个操作数相乘,乘积在第3个操作数中。并写一个简单的程序调用这个宏,完成2个从键盘输入数据的相乘及结果输出。
代码如下:
DATAS SEGMENT;此处输入数据段代码x db 2 dup(?) y db 2 dup(?)z dw ?mess1 db 'Please enter two double digits, each ending with enter:',0ah,0dh,'$'mess2 db 0ah,0dh,'result=$'
DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码
STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS
START:MOV AX,DATASMOV DS,AX;此处输入代码段代码;只能支持两位数的乘法!!!
input1 macro opr1 ;输入宏-Xmov cx,1hmov si,0h
let1:mov ah,1hint 21hcmp al,0dhje let2sub al,30hmov opr1[si],alinc sijmp let1
let2:loop let1
endm
input2 macro opr2 ;输入宏-Ymov cx,1hmov si,0h
let3:mov ah,1hint 21hcmp al,0dhje let4sub al,30hmov opr2[si],alinc sijmp let3
let4:loop let3
endm
mulxy macro op1,op2,op3 ;运算宏mov bx,0hmov al,op1[0]mov bl,op1[1]mov cl,0ahmul cladd ax,bx ;ax中存的是x的真值push ax ;x暂存起来mov ax,0hmov bx,0hmov al,op1[0]mov bl,op1[1]mov cl,0ahmul cladd ax,bx ;目前ax存放y的真值mov bx,0hpop bxmul bx ;x*y运算结果放入ax中mov z,ax
endm
output1 macro op ;输出宏mov ax,0hmov bx,0hmov dx,0hmov cx,0hmov ax,opmov bx,0ah
let5:div bxpush dx ;存余数mov dx,0hinc cxcmp ax,0hjnz let5
let6:mov ah,2hpop dxadd dx,3030hint 21hloop let6
endmlea dx,mess1 ;提示信息mov ah,9hint 21hinput1 xinput2 ymulxy x,y,z ;结果在Z中lea dx,mess2 ;提示信息mov ah,9hint 21h;输出结果时是将运算结果除以十然后余数入栈;最后弹出余数调用dos系统2号功能依次输出结果output1 zMOV AH,4CHINT 21H
CODES ENDSEND START
PS:
2021回头来看到这篇博客,把代码拿到软件上跑了一下,发现出BUG了!
很抱歉,当初没有调试出来,但现在已经忘得差不多了(枯),本文的代码仅供参考,并非标准程序,再次对曾经看到过这篇文章的同志们表示抱歉
汇编语言两位数的乘法相关推荐
- 汇编语言-两位数减法(优化版)十位、个位、负数
DATAS SEGMENT a1 db ? a2 db ? ;此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGM ...
- android简易计算器(两位数的加减乘除求余)
该项目是两年前刚学android时,课堂上老师布置的一个作业, 要求是:能够实现两位数(正数或负数)的加减乘除以及求余的功能. 一.简易计算器界面展示 1.两位数的加法 2.两位数的减法 3.两位 ...
- 万能乘法速算法大全_小学生两位数乘法容易出错?只因没掌握这个“万能”速算法...
儿童节快乐 两位数乘法,在小学阶段的数学学习当中,是经常遇到的.尤其是小学三.四年级,每当遇到这类乘法,小学生都非常容易出错,甚至一算就错. 原因是,一些比较大的两位数,在用列竖式法相乘时,会出现连续 ...
- 两位数乘法的速算方法(一)
两位数乘法的速算方法(一) 一.范围 讲的是两位自然数的相乘,即如何计算ABXCD的相乘结果,例如86X32. 二.ABXCD相乘的专业说法 AB叫被乘数 CD叫乘数 三.原理 设两位数分别是10A+ ...
- 两位数乘法的速算方法(二)
两位数乘法的速算方法(二) 一.被乘数首尾相同 1. 乘数首尾互补 公式推导: (10 a+a)(10b+10-b) = 100ab + 10(a x (10-b) + ab) + a(10-b) = ...
- 5种很牛的两位数乘法速算方法
5种很牛的两位数乘法速算方法 第一种:十几乘以任意两位数 公式推导 (10+b)(10c+d) = 100c+10(bc+d)+bd = 10(10c+bc+d)+bd = 10( (10c+d) + ...
- 两位数乘法的速算方法(三)
两位数乘法的速算方法(三) 一.速算方法总结 序号 类别 子类别 例如 应用举例 1 首位 相同 尾数互补 71X79 |(7+1)x7||1x9|=5609 2 尾数不互补 72X73 (72+3) ...
- 主存地址位数怎么算_两位数乘一位数也能口算?对!你没看错,不是特殊情况也行...
什么叫四则运算?加.减.乘.除呗.在四则运算中,如果没有括号,运算规则是先算乘.除,后算加.减. 乘法也是算术中最常见的一种运算.它是将相同的数加起来的一种快捷方式.比如说16×8=128.表示:8个 ...
- 2乘2数组第一维_苏教版三年级下册 第一单元“两位数乘两位数”第2课
开发人员:汤宝玉.史启鹏.姚兰.黄莹.林芳芳 统稿:姚春香 一. 学习内容 教材第3-5页例3."试一试"和"想想做做"第1-6题. 二.学习指导 ...
最新文章
- 余弦相似和内积的意义? 区别
- 新浪微博应用 IE下面框架嵌套框架的问题解决
- DeepMind 的新强化学习系统,是迈向通用人工智能的一步吗?
- 23个经典JDK设计模式(转)
- 九十二、Python爬取深圳租房信息小案例
- Window将Redis设置为开机启动
- 如何做到全年配送 0 故障?盒马揭秘 12个关键技术
- php 超大整数计算,PHP int 超大溢出整数的 加减运算函数,如果有更好的方法欢迎探讨...
- SQL Server insert的触发器
- weblogic下载、安装、配置
- hdu5294Tricks Device【最短路+网络流】
- DAC0832数模转换芯片介绍及使用教程
- Python Gstreamer播放rtsp视频(含音频)(海康IPCAM)
- 三天入门MySQL---DAY 1---库和表的创建、删除、更新
- 美容院共享系统开发|共享模式具体应该怎么去做?
- 51nod 1677——treecnt
- 北京新世纪计算机学校地,石家庄新世纪电脑学校
- Linux内核4.14版本——mmc core(7)——mmc core主模块(3)总线io setting相关(struct mmc_ios)
- ddr3写操作app_wdf_end说明
- [机器学习][1]--PLA算法