實現正負數區分#跳轉指令

題目要求大意:html

  在數據段指定一組數據,對該組數據進行:正負分類,分別記下兩類的絕對值之和與個數只和spa

參考代碼:code

include irvine32.inc
.data
	arr dd 0,-1,1,-2,2,-3,3
	count dd ($-arr)/4
	sum1 dd 0
	sum2 dd 0
	cou1 dd 0
	cou2 dd 0
	I dd -1
	;1表示正記錄,2表示負記錄
.code
main PROC
	lea esi,arr
	mov ecx,0
	
	;把每一個數據取出
lop:	mov ebx,[esi+4*ecx]
	add ecx,1

	;判斷正負數
	cmp ebx,0
	jl L1			;原本用neg編譯錯誤	;跳到負數狀況

	add sum1,ebx		;正數狀況
	add cou1,1
	jmp next

L1:	add sum2,ebx
	add cou2,1
	jmp next

next:	cmp ecx,count
	jb lop
	mov eax,sum2
	imul I			;帶符號乘法
	mov sum2,eax
;11111111111111111111111111111111111111111111111111111111111111
	mov eax,666666
	call writeint
	push eax
	mov eax,sum2		;11111111111111test
	call writeint		;11111111111111
	pop eax
	push eax
	mov eax,cou2		;11111111111111test
	call writeint		;11111111111111
	pop eax
	push eax
	mov eax,sum1		;11111111111111test
	call writeint		;11111111111111
	pop eax
	push eax
	mov eax,cou1		;11111111111111test
	call writeint		;11111111111111
	pop eax
	mov eax,9999999
	call writeint
;2222222222222222222222222222222222222222222222222222222222222222
	
	exit
main ENDP
end main

跳轉指令:htm

(該部分來自:https://www.cnblogs.com/del/archive/2010/04/16/1713886.html)blog

JE   ;等於則跳轉
JNE  ;不等於則跳轉

JZ   ;爲 0 則跳轉
JNZ  ;不爲 0 則跳轉

JS   ;爲負則跳轉
JNS  ;不爲負則跳轉

JC   ;進位則跳轉
JNC  ;不進位則跳轉

JO   ;溢出則跳轉
JNO  ;不溢出則跳轉

JA   ;無符號大於則跳轉
JNA  ;無符號不大於則跳轉
JAE  ;無符號大於等於則跳轉
JNAE ;無符號不大於等於則跳轉

JG   ;有符號大於則跳轉
JNG  ;有符號不大於則跳轉
JGE  ;有符號大於等於則跳轉
JNGE ;有符號不大於等於則跳轉

JB   ;無符號小於則跳轉
JNB  ;無符號不小於則跳轉
JBE  ;無符號小於等於則跳轉
JNBE ;無符號不小於等於則跳轉

JL   ;有符號小於則跳轉
JNL  ;有符號不小於則跳轉
JLE  ;有符號小於等於則跳轉
JNLE ;有符號不小於等於則跳轉

JP   ;奇偶位置位則跳轉
JNP  ;奇偶位清除則跳轉
JPE  ;奇偶位相等則跳轉
JPO  ;奇偶位不等則跳轉
相關文章
相關標籤/搜索