1楼:匿名用户
减数低八位送30h,高八位送31h。被减数低八位送32h,高八位送33h。差送34(低八位)、35(高八位)。
清cymov a, 30hsubb a, 32hmov 34h, a
mov a, 31hsubb a, 33hmov 35h, a
这是8051单片机的设计方法,要是有支持16位的减法指令就不用设计了,直接写就ok了。
2楼:匿名用户
16位数是16位二进制数还是十进制数??(假如单片机是8位的)如果是16位二进制数就用2个寄存器*2+z标志,每个数用2个寄存器来存储,先算低8位的,然后算高8位减去z位其实用c位也可以如果是16位十进制数要转化为二进制,然后就十分麻烦了,定义一个数组或者结构体这么大的数字单片机算得很累的,没有试过
3楼:匿名用户
有16位减法就直接用单个指令实现,没有的话想办法扩展就ok了。
4楼:风雷小草
二楼的基本思路是对的,但没有考虑低字节相减得负数的情况。需要结合状态寄存器,用分支对不同的情况进行区分。
两个十六位二进制数相减,完整汇编语言程序
5楼:江城微波
;两个十六位进制数相减
data
segment
num1 dw 1111000011110010b ;被减数num2 dw 1111000011110001b ;减数num3 dw ? ;结果
data ends
code segment
assume cs:code,ds:datastart: mov ax,data
mov ds,ax
mov ax,num1
mov bx,num2
sub ax,bx
mov num3,ax
mov ah,02h ;显示结果
mov dx,num3
int 21h
mov ah,4ch
int 21h
code ends
end start
6楼:匿名用户
对于86而言,有直接的16位减法指令,所以这个题目的cpu应该是8位单片机,以51单片机为例,先将借位清零,低八位相减法,再高八位带借位减,类似于列式减法运算一样。程序如下:
; (r3r4-r6r7)=(r3r4)
;入口: r3,r4,r6,r7
;出口: r3,r4
nsub :
mov a,r4
clr c ;借位清零subb a,r7 ;低八位相减
mov r4,a ;保存低八位结果
mov a,r3
subb a,r6 ;高八位带借位减mov r3,a ;保存高八位结果ret
80c51单片机编程实现两个16位数的减法。
7楼:七彩镜
sub16:
clr c ;清进位mov a,#50h ;被减数低位送累加器subb a,#4bh ;减去减数低mov 31h,a ;差低位送31hmov a,#6fh ;被减数高位送累加器subb a,#13h ;减去减数高位mov 30h,a ;差高位送30h;如果有借位,c为1
8楼:顶起石头的小草
你好!是用汇编来完成?
如何用SQL数据库和C程序设计设计超市管理系统
1楼 秋韵盎然暗香 1 不要想着有现成的源 ,现在 上都有得卖这样的 软件 10来块呢 2 如果是想自己学习成长,就自己写, 绝对不少,而且过程比较长3 超市管理系统使用sqlite就行了,没必要搞得太复杂,网上找个sqlite例子学习一下 4 c 写会界面 ,最好能看懂designer cs的 5...
verilog如何实现两数相减,verilog中计算两数相减的平方时要声明成有符号数吗
1楼 不会水的小兵 1 像你这样也是可以的,但只能以大减小。 2 你的输入输出都为无符号数,结果是无所谓正负之分的,也无溢出。要想结果可正可负,你可以将寄存器都设置成有符号数的,但这样一来就有溢出的问题了,但只要你在进行运算时注意结果不要超出范围就行了。 2楼 匿名用户 不可以,结果可能会溢出,用9...
如何编写程序通过手机控制家电,如何开发一个用手机就可以控制智能家居的系统?需要哪些准备?
1楼 exia小童鞋 这完全是硬件问题,不能靠编写程序解决 2楼 梦想哥 这完全靠程序是做不到的 如何开发一个用手机就可以控制智能家居的系统?需要哪些准备? 3楼 匿名用户 其实说起来很简单,手机上需要开发一套控制软件,硬件上需要开发中心管理软件。另外是硬件开发。像灯光控制 窗帘控制 空调 家电 音...