📄 exam502.asm
字号:
;任意给定X值(-128<=x<=127),求以下符号函数Y的值
; = 1 当x>0
; y = 0 当x=0
; = -1 当x<0
data segment
x db -18
y db ?
data ends
code segment
assume cs:code, ds:data
start: mov ax, data
mov ds, ax
mov al, x
cmp al, 0 ;此处可用SUB AL,0或OR AL,AL或AND AL,AL代替
jge bige
mov al, 0ffh;(AL)<0, AL<—-1
jmp outy ;使用无条件转移指令,保障同一出口
bige: je outy ;(AL)=0
mov al, 1 ;(AL)>0, AL<—1
outy: mov y, al
call aldisp
mov ah,4ch ;返回DOS
int 21h
;显示子程序,入口参数为al
aldisp proc
push ax
push dx
push ax
mov dl, al
shr dl, 1
shr dl, 1
shr dl, 1
shr dl, 1
or dl, 30h
cmp dl, 39h
jbe aldisp1
add dl, 7
aldisp1: mov ah, 2
int 21h
pop dx
and dl, 0fh
or dl, 30h
cmp dl, 39h
jbe aldisp2
add dl, 7
aldisp2: mov ah, 2
int 21h
pop dx
pop ax
ret
aldisp endp
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -