汇编两个8位无符号数相加
来源:互联网 发布:最新淘宝优惠券 编辑:程序博客网 时间:2024/05/16 14:40
;两个8位无符号数相加;在8086/8088CPU中,只有8位或16位运算指令,没有32位和64位以上的运算指令;要进行64位加法运算,可以利用16位加法指令分别相加4次来实现;这个问题比较简单,无须画程序流程图;该汇编程序的基本框架至少要两个段,即数据段和代码段,数据段中至少定义3个变量,即;两个加数变量N1,N2,还有一个和变量SUM,都是DW(字类型)类型。和变量SUM尚属未知,故应定义一个5个字长(比64位字长大一点的缓冲区)。;因为要加4次,需要一个计数器或指针,可选寄存器BX充当。;由上分析可知,需要MOV,ADD(无符号加法指令),ADC(有符号加法指令),和INC等指令。;SAFE 7 BIT ADDNAME TESTADDDATA SEGMENT N1 DB 1FH N2 DB 01H SUM DB 1 DUP(?) DATA ENDSSTACK SEGMENTSTACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX XOR AX,AX MOV AL,N1 ADD AL,N2 PUSH AX ;"保护现场" AND AL,0F0H ;低4位清零,高4位不变 MOV CL,4 ROR AL,CL ;循环右移4位 MOV DL,AL ADD DL,30H CMP DL,39H JBE JUMP1 ADD DL,7JUMP1: MOV AH,2 INT 21H POP AX ;"恢复现场" AND AL,00FH ;高4位清零,低4位不变 MOV DL,AL ADD DL,30H CMP DL,39H JBE JUMP2 ADD DL,7JUMP2: MOV AH,2 INT 21H MOV AH,4CH ;ALSO MOV AX,4C00H INT 21HCODE ENDS END START
0 0
- 汇编两个8位无符号数相加
- 汇编-两个多位十进制数相加
- 16位无符号数乘法汇编
- 汇编,接收两个2位十进制数,相加后输出
- 两个32位无符号长整数相加的函数,相加之和不能存储在64位变量中
- 汇编语言8位无符号数运算
- 判断两个64位无符号整数a和b相加是否溢出
- 80x86汇编:将AL中的8位无符号数转换为压缩型BCD数放入AX
- 无符号数相加溢出判断方法
- 汇编中有符号与无符号数以及CF,OF标志位的区分
- 有符号数和无符号数的相加问题
- 无符号数与有符号数相加的结果
- 两个多位十进制数相加(纪念本人的第一次汇编代码)
- 请用C语言在32位环境下,两个无符号长整数相加的函数,相加之和不能存储在64位变量中
- 两个n位二进制数相加
- 用位实现两个数的相加
- 汇编有符号数和无符号数总结
- 判断两个无符号整形相加产生溢出
- 黑马程序员----异常、抽象和接口
- Objective-C中的static用法
- nodejs(数据查询功能5)
- 生成验证码代码
- Triangle源程序
- 汇编两个8位无符号数相加
- oracle恢复删除的数据
- C零散_清空缓冲区_错误检测_数字转字符
- Android仿微信底部菜单栏+顶部菜单栏(附源码)
- 第5章6节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 初始化事件源(原创)
- 开通博客的第一天!
- B+树与B*树小结
- Project2.c
- 验证数字的正则表达式集