设计几个简单的汇编函数

原创


已知符号函数 Y= 1 (当X>0), 0 (当X=0),-1 (当X<0)

设任意给定的X(-128≤X≤127)存放在DTX单元,计算函数Y值,要求存放在DTY单元中。

采用分支结构。首先判断X≥0还是X<0,如果X<0,则Y=-1;如果X≥0,则在判断X=0还是X>0,从而确定数值Y。

首先判断X≥0还是X<0,如果X<0,则Y=-1;如果X≥0,则在判断X=0还是X>0,从而确定数值Y。
DATA SEGMENT
    DTX DB ?
    DTY DB ?
DATA ENDS
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
    MOV AX,DATA
    MOV DS,AX
    MOV AL,DTX
    CMP AL,0
    JGE BGE        ;大于等于跳转
    MOV AL 0FFH
    JMP EQ1
BGE: 
    JZ EQ1    ;X==0跳转
    MOV AL,1
EQ1:
    MOV DTY AL
    MOV AH,4CH
    INT 21H
CODE ENDS
END START
自BLOCK开始的内存缓存区中,有100个8位无符号数,求出其中最大值,存入MAX单元。
MOV BX,OFFSET BLOCK
MOV AX,[BX]    ;取第一个数
MOV CX,99    ;比较99次
INC BX    ;指向第二个数
    LOOP:
    CMP AX,[BX]
    JMP SS
    MOV AX,[BX]
    SS:
    INC BX
    DEC CX
    JNZ LOOP
    MOV MAX,AX
    HLT

另附:

XOR

XOR AL,AL 时,该指令对指定的两个操作数按位进行逻辑“异或”运算,进行“异或”运算的两位不相同时,“异或”的结果为1,否则为0。

所以会影响到状态位,比如状态位CF,因为一定不会有进位,所以CF=0

16:39:42

2018-12-01

转载于:https://www.cnblogs.com/chiweiming/p/10050015.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值