标题:汇编初学者 希望大神带
只看楼主
Darwin890
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2018-3-28
结帖率:0
已结贴  问题点数:10 回复次数:9 
汇编初学者 希望大神带
16进制怎么存3字的数啊
话说我不太懂2字和3字的长度到底是多少

求大神帮我看一下实验内容的 1  2
搜索更多相关主题的帖子: 汇编 进制 长度 实验 内容 
2018-04-17 10:40
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:4 
可以放到内存中,也可以放到其他寄存器中。

能编个毛线衣吗?
2018-04-17 11:00
xzjxu
Rank: 1
等 级:新手上路
帖 子:17
专家分:4
注 册:2018-4-15
得分:4 
3字就是个字节,2字就是个字节
2018-04-17 12:57
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:0 
回复 3楼 xzjxu
字是指word类型,16位,2个字节。

能编个毛线衣吗?
2018-04-17 14:09
Valenciax
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:11
帖 子:337
专家分:2462
注 册:2016-5-15
得分:4 
字节=byte 8bit , 如 12h, 23h
字=2字节 = word 16 bit , 如1234h, 0ABCDh
长度2字就是2个words, 如 12345678h
长度3字就是3个words, 如 12345678ABCDh

2长度2个字加,如  12345678H + AABBCCDDH
长度3字加,长度2字如  12345678AABBH + AABBCCDDH
2018-04-18 22:06
Darwin890
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2018-3-28
得分:0 
谢谢各位啦
2018-04-18 22:19
Darwin890
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2018-3-28
得分:0 
回复 5楼 Valenciax
如果  3字的长度相加的话 最高的四位存到寄存器里相加吗?那最后怎么拿出来把结果写成3字的哇

2018-04-18 22:22
Valenciax
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:11
帖 子:337
专家分:2462
注 册:2016-5-15
得分:0 
回复 7楼 Darwin890
不同长度相加,长度较少的补足成相同相长,例如
长度3字加,长度2字  12345678AABBH + AABBCCDDH
可以补足为  12345678AABBH + 0000AABBCCDDH
因为3字相加,其结果有可能是4字,所以要定义4字空间放结果
小学加法:
 
AABB + CCDD = xxxx + 进位(若有)                    结果放 0000 0000 0000 xxxx
5678 + AABB + 前一加法的进位 = yyyy + 进位(若有)   结果放 0000 0000 yyyy xxxx
1234 + 0000 + 前一加法的进位 = zzzz + 进位(若有)   结果放 0000 zzzz yyyy xxxx
0000 + 0000 + 前一加法的进位 = ? (若有进位则为1)   结果放 000? zzzz yyyy xxxx
2018-04-19 07:19
Darwin890
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2018-3-28
得分:0 
回复 8楼 Valenciax
奥奥! 那具体怎么定义一个4字的空间啊  用dd吗  能不能写下具体的汇编语句哇  
2018-04-19 23:30
Valenciax
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:11
帖 子:337
专家分:2462
注 册:2016-5-15
得分:0 
回复 9楼 Darwin890

假设 3字加2字  12345678AABBH + AABBCCDDH


资料段定义

 first dw 0AABBh,5678h,1234h,0000h ;补足4字长度
 second dw 0CCDDH,0AABBh,0000h,0000h ;补足4字长度
 result dw 4 dup (0)


程式段,关键代码片段

...
...

 mov bx,0
 mov cx,4 ;4字
 clc ;清除进位
redo:
 mov ax,first[bx]
 adc ax,second[bx]  ;加前次进位(若有),并得出下次进位(若有)
 mov result[bx],ax
 inc bx
 inc bx ;指向下一地址,不能用add bx,2, inc不会影响标志,add会
 loop redo ;回圈

...
...
完成后result即为答案



图中
红色是编译后的关键代码
黄色是第1组数字,已补足为4字
蓝色是第2组数字,已补足为4字
绿色是完成后的结果,也就是
12345678AABBH + AABBCCDDH 的和 = 1235 0134 7798

在内存是倒着看 98 77 34 01 35 12 00 00
2018-04-21 06:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486132-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036329 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved