zys3.asm

来自「在汇编语言环境下」· 汇编 代码 · 共 43 行

ASM
43
字号
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;判断BUF单元中数据的正负,正数D1D0位清零,负数D1D0位置1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
STACK SEGMENT  STACK
	DB 200 DUP(?)
STACK ENDS
DATA SEGMENT
	BUF  DB 73H,73H,75H,82H 		;原数据 
	NUM EQU $-BUF			   	;BUF中的数据个数
	 	;存储变化后的数据:83H,70H,74H,83H	
DATA ENDS							
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:	MOV AX,DATA
			MOV DS,AX
			MOV CX,NUM
			MOV SI,OFFSET BUF		;取BUF的偏移地址给SI
			;取BUF1目标地址的偏移地址给DI
			CALL EXCHANGE
		MOV AH,4CH
			INT 21H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;AX的变化:5B83-5B83; 5B73-5B70; 5B75-5B74; 5B82-5B83
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
EXCHANGE PROC
	 TS1:	MOV AL,[SI]
			INC SI
			TEST AL,80H
			JZ  TS2					;正数跳转到TS2 			
			OR AL,03H				;负数的两低位置1
			JMP TS 
    TS2:	AND AL,0FCH				;正数的两低位清零
	 TS: 	MOV [SI],AL
			;将变化后的数据存储在DI中
		  	INC SI
		  	LOOP TS1				;判断CX是否为0,为0则结束子程序
  		  	RET
EXCHANGE ENDS
CODE ENDS
	END START


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?