当前位置:网站首页>Assembly language (6) uses JCC instructions to construct branches and loops

Assembly language (6) uses JCC instructions to construct branches and loops

2022-06-25 17:24:00 Day-3

1 Use of data segments

Assembly language print string .

assume cs:code,ds:data

data segment
	buffer db 0DH,0AH,'day3$'
data ends

code segment
main proc
	mov ax,data
	mov ds,ax
	mov dx,offset buffer
	mov ah,09H
	int 21H
	mov ah,07H
	int 21H
	mov ax,4C00H
	int 21H
main endp
start:call main
code ends
end start

2 flag register

CMP OPRD1,OPRD1
SUB Influence flags
AX = 8
BX = 8
equal AX - BX = 0 ZF = 1

AX = 8
BX = 1
It's not equal AX - BX != 0 ZF = 0

AX < BX: Occurrence of borrowing
CF = 1
AX > BX: No borrowing
AX - BX = ?CF = 0 ZF = 0
AX <= BX:
AX - BX = ? CF = 1 || ZF = 1
AX >= BX:
AX - BX = ? CF = 0 || ZF = 1

A class JCC Instructions Jump
JMP address
JE Conditional transfer instructions Equal to jump ZF = 1
JNE If not, jump ZF = 0
JB Jump below CF = 1
JA Jump above CF = 0 && ZF = 0
JNA Less than or equal to, jump CF = 1 perhaps ZF = 1
JNB If it is greater than or equal to, jump to CF = 0

3 Jump

assume cs:code,ds:data

data segment
	buffer db 0DH,0AH,'day3$'
	buffer1 db 0DH,0AH,'day2$'
data ends

code segment
main proc
	mov ax,data
	mov ds,ax
	mov dx,offset buffer
	mov ah,09H
	int 21H
	jmp qq1
	mov dx,offset buffer1
	mov ah,09H
	int 21H
qq1:
	mov ah,07H
	int 21H
	mov ax,4C00H
	int 21H
main endp
start:call main
code ends
end start

Create jump conditions

assume cs:code,ds:data

data segment
	buffer db 0DH,0AH,'day3$'
	buffer1 db 0DH,0AH,'day2$'
data ends

code segment
main proc
	mov ax,data
	mov ds,ax
	mov dx,offset buffer
	mov ah,09H
	int 21H

	mov ax,1
	mov bx,2
	cmp ax,bx
	ja qq1
	
	mov dx,offset buffer1
	mov ah,09H
	int 21H
qq1:
	mov ah,07H
	int 21H
	mov ax,4C00H
	int 21H
main endp
start:call main
code ends
end start

If multiple conditions need to be met, judge whether the conditions are met in turn .
loop

for(int i = 0; i <= 100; i ++)

mov cx,0
qq2:
cmp cx,100
ja qq
	mov dx,offset buffer
	mov ah,09H
	int 21H
	inc cx
	jmp qq2
qq:

mov cx,0
qq2:
	mov dx,offset buffer
	mov ah,09H
	int 21H
	inc cx
	cmp cx,100
	jb qq2
原网站

版权声明
本文为[Day-3]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/176/202206251706067754.html