专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 汇编语言

居然显示不出负数来,悲剧,该怎么解决

发布时间:2010-06-14 15:52:01 文章来源:www.iduyao.cn 采编人员:星星草
居然显示不出负数来,悲剧
Assembly code
.386
.model flat,stdcall


include kernel32.inc 
includelib kernel32.lib
include msvcrt.inc
includelib msvcrt.lib



.data           
printStr2 byte "dl:al=%d",0dh,0ah,0

var1 word ?


.code
main proc


mov eax,0

mov al,-1

add al,-2

adc dl,0

mov byte ptr var1,al
mov byte ptr var1+1,dl

movzx eax, var1

invoke crt_printf, addr printStr2,eax

invoke ExitProcess,0;
main endp



end main





为啥,结果不是负数??



------解决方案--------------------
movzx 应该是 movsx 吧,不然 Hiword(eax) 为 0000,怎么还会是负数呢
------解决方案--------------------
根绝应该是movsx吧。movzx的话,符号位都填零啦
------解决方案--------------------
建议用C写一个看其反汇编即可。
------解决方案--------------------
太2了。。。add al,-1
怎么会是负数。。。。
mov eax,-1才是负数。。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: