汇编实验(二)

;test 和 and 区别在于不改变op1
;shr 如果要多移几次 mov cl, 4 shr dl, cl 
;判断数组里正负数 并分开存放
assume cs:code, ds:data
data segment
m db 1, 2, -3, 4, 5, -6, 7, 8, -9, 10, 11, -12, 13, 14, -15, 16, 17, -18, 19, 20
p db 20 dup(?)
n db 20 dup(?)
data ends

code segment


start:
	mov ax, data
	mov ds, ax
	
	lea si, p      ;正数计数
	lea di, n      ;负数计数
	lea bx, m 
	xor ax, ax 
	xor dx, dx 
	mov cx, 20
	
l1:
	mov al, [bx]
	test al, 80h
	jz l2     ;Z 运算结果为零时  Z = 1
	
	mov [di], al       ;z = 1 说明符号位为1 即为负数
	inc bx 
	inc di             
	inc dh 				
	jmp l3
	
l2:                ;Z = 0 说明是正数
	mov [si], al 
	inc bx 
	inc si 
	inc dl 				
	
l3:
	loop l1 
	mov cx, 2 
	
l5:
	push cx 
	mov bl, dl 
	mov cl, 4
	shr dl, cl 
	pop cx 
	
	and dl, 0fh
	cmp dl, 10
	jb l4
	add dl, 7 
	
l4:
	add dl, 30h
	mov ah, 2 
	int 21h 
	
	mov dl, bl 
	and dl, 0fh 
	cmp dl, 10 
	jb l6
	add dl, 7
	
l6:
	add dl, 30h 
	mov ah, 2
	int 21h 
	
	mov dl, 0ah
	mov ah, 2 
	int 21h
		
	mov dl, 0dh
	mov ah, 2 
	int 21h
	
	
	
	mov dl, dh 
	loop l5 
	mov ah, 4ch
	int 21h 

code ends 
end start


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值