汇编适用范围+进位标志等简单的题

时间:2021-06-19 01:05:51
1.想搞后台的程序,黑客之类的,学汇编对我有好处不?
题:
--------------下面的题使用以下数据
.data
val2 word 8000h
val3 word 7fffh
------------------
1,如果用ADD指令对val2加1,进位标志和符号标志分别是什么?   ;0,1
2,如果用ADD指令对val3加1,溢出标志和符号标志分别是什以?  ;1,1
-----------------------------------
为什么,word不是无符号么?val2 符号标志 置位?
书上(intel汇编,kipirvine)说溢出标志是 有符号数的 ,为什么val3溢出标志为1,符号标志也为1?
---(题来源:书上86页)

6 个解决方案

#1


很重要,底层很需要
起码有助于学好C语言等其它高级语言!
题自己好好看书

#2


无论是补码还是无符号数,他们在位级的表示上都是一样的。

#3


楼上两位,详解可以不?

#4


比如有16位数FFFFH,如果你把它作为补码,则它表示-1;如果你把它作为无符号数,则它表示65535;这取决你如何使用它。如下代码:
;ax=ffffh
cmp ax,0
jg a ;把ax作为有符号数判断
ja b ;把ax作为无符号数判断
;也就是说,如何使用,取决于人。

#5


引用 4 楼 masmaster 的回复:
比如有16位数FFFFH,如果你把它作为补码,则它表示-1;如果你把它作为无符号数,则它表示65535;这取决你如何使用它。如下代码:
;ax=ffffh
cmp ax,0
jg a ;把ax作为有符号数判断
ja b ;把ax作为无符号数判断
;也就是说,如何使用,取决于人。

无论补码还是无符号数, 它们的位级表示都是1111 1111 1111 1111(FFFFH)

#6


还是看不懂,有没有更详细的说明,没有就结了。

#1


很重要,底层很需要
起码有助于学好C语言等其它高级语言!
题自己好好看书

#2


无论是补码还是无符号数,他们在位级的表示上都是一样的。

#3


楼上两位,详解可以不?

#4


比如有16位数FFFFH,如果你把它作为补码,则它表示-1;如果你把它作为无符号数,则它表示65535;这取决你如何使用它。如下代码:
;ax=ffffh
cmp ax,0
jg a ;把ax作为有符号数判断
ja b ;把ax作为无符号数判断
;也就是说,如何使用,取决于人。

#5


引用 4 楼 masmaster 的回复:
比如有16位数FFFFH,如果你把它作为补码,则它表示-1;如果你把它作为无符号数,则它表示65535;这取决你如何使用它。如下代码:
;ax=ffffh
cmp ax,0
jg a ;把ax作为有符号数判断
ja b ;把ax作为无符号数判断
;也就是说,如何使用,取决于人。

无论补码还是无符号数, 它们的位级表示都是1111 1111 1111 1111(FFFFH)

#6


还是看不懂,有没有更详细的说明,没有就结了。