汇编 简单的两个一位数相加
来源:互联网 发布:iapp钓鱼软件制作方法 编辑:程序博客网 时间:2024/04/30 00:06
本来两个数相加,用c语言写的话。
#include<stdio.h>int main(){ int i =8,j = 9; printf("%d",i+j);}
到了汇编,第一次写的时候,连个最简单的都想了半天。
DATAS SEGMENT 定义数据段标识为“DATAS” OP1 DB 09H定义op1 为 byte类型 值为09H OP2 DB 08H 定义op2 为 byte类型 值为08H DEFULT DB ? 定义DEFULT 为 byte类型 值为待定 CARRY DB ? 定义CARRY 为 byte类型 值为待定DATAS ENDS数据段结束STACKS SEGMENT 堆栈段开始STACKS ENDS 堆栈段结束CODES SEGMENT定义代码段标识为“CODES” ASSUME CS:CODES,DS:DATAS,SS:STACKS 设置数据段和代码段的默认寄存器START: 起始标志 MOV AX,DATAS MOV DS,AX将DATAS赋值给DS MOV AL,OP1将OP1赋值给AL ADD AL,OP2 AAA 非压缩BCD码加法调整 JC SS2如果进位 跳转到SS2 JMP SS3跳转SS3 JNC SS1不进位 跳转SS2 JMP SS3 跳转SS3SS1: MOV CARRY,30H 条件要求,给CARRY加上30H SS2: MOV CARRY,31H条件要求,给CARRY加上31H SS3:MOV DEFULT,AL ADD DEFULT,30H; MOV DL,CARRY 将CARRY赋值给DL MOV AH,2 INT 21H 在控制台上输出字符串 MOV DL,DEFULT将DEFAULT赋值给DL MOV AH,2 INT 21H在控制台上输出字符串 MOV AH,4CH正常结束程序 INT 21HCODES ENDSEND STARTSTART结束
注释是在中文前面加分号。没想到,一个进位,也要判断,一个的输出也是那么的麻烦,不过,原理性的东西就在这里,语言原来让编程美好了许多。不然你写个加法都这样,让你做个计算器出来还了得。
- 汇编 简单的两个一位数相加
- 用汇编实现任意长度的两个整数相加
- 汇编-两个多位十进制数相加
- C++实现的一个简单两个大数相加程序!
- 汇编一位数加法
- 汇编实现一位数加减乘除
- 两个多位十进制数相加(纪念本人的第一次汇编代码)
- 两个一位数相乘
- 一位数乘以一位数的计算方法
- 汇编,接收两个2位十进制数,相加后输出
- 汇编两个8位无符号数相加
- 两个超大数的相加
- 实现两个数的相加
- 无限大的两个整数相加
- 两个复数的相加减
- 两个大的整数相加
- 求多组数两个数的相加
- 求a^b和的值,各位相加直到只剩一位数
- Hadoop启动错误
- java解析xml四种方式
- C++ 中explicit的用法
- android软键盘的现实和隐藏
- python字符串操作,自己留着看
- 汇编 简单的两个一位数相加
- jcart安装方式
- 黑马程序员--Java高新技术--eclipse使用技巧
- 递归函数终止方式
- readLPw
- Dreamweaver扩展(插件)的开发
- string和stringBuilder区别
- C#通过序列化的方式存读类、结构、数组等为二进制文件
- 第三周13/03/24