📄 zys3.asm
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;判断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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -