汇编语言数字表示问题
为什么:ax=2222=08aehdx=1111=0457h(高位)0457h+(低位)08aeh=45708aeh=7281271872812718≠11112222啊...
为什么:
ax=2222=08aeh
dx=1111=0457h
(高位)0457h+(低位)08aeh=45708aeh=72812718
72812718≠11112222啊 展开
ax=2222=08aeh
dx=1111=0457h
(高位)0457h+(低位)08aeh=45708aeh=72812718
72812718≠11112222啊 展开
1个回答
展开全部
为什么会等于?
ex1:
ax = 1 = 0001h
bx = 1 = 0001h
高位 0001h + 低位0001h = 00010001h = 65537
显然 dx * 65536 + ax 才等于 65537。。
不是你这样直接拼接的,因为牵涉到不同进制,位权不一样。用16进制拼接的时候是乘以的65536,你用10进制拼接的时候乘以的是10000。。铁定不一样啊
------回到你的问题就是
1111 * 65536 + 2222 = 你算的大的那个数
1111 * 10000 + 2222 = 你算的小的那个数
ex1:
ax = 1 = 0001h
bx = 1 = 0001h
高位 0001h + 低位0001h = 00010001h = 65537
显然 dx * 65536 + ax 才等于 65537。。
不是你这样直接拼接的,因为牵涉到不同进制,位权不一样。用16进制拼接的时候是乘以的65536,你用10进制拼接的时候乘以的是10000。。铁定不一样啊
------回到你的问题就是
1111 * 65536 + 2222 = 你算的大的那个数
1111 * 10000 + 2222 = 你算的小的那个数
追问
我这个问题折腾了好久,今天总算被你帮忙解决了,原来犯了这么2的错误,汗啊 谢谢指点迷津!!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询