exam502.asm

来自「我在汇编课上完成的一些作业(上机常见习题)和汇编课本上的几个例题」· 汇编 代码 · 共 54 行

ASM
54
字号
;任意给定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 + =
减小字号Ctrl + -
显示快捷键?