汇编简单的加减乘除

汇编基础

  • 汇编语言基础之顺序结构,简单的加减乘除代码实现如下
  • 软件emu8086

; You may customize this and other start-up templates; 
; The location of this template is c:\emu8086\inc\0_com_template.txt

; 编写计算F=(V-(X*Y+Z-5000))/X的程序,其中X、Y、Z、V均为有符号16位二进制数

;先定义变量
DATA SEGMENT
    X DW 300H
    Y DW 600H 
    Z DW 890H
    V DW 320H
    F DW ?,?   ;只定义,未初始化
DATA ENDS

;接下来,编写代码段内容
CODE SEGMENT
    ASSUME CS:CODE, DS:DATA

START: 
    MOV AX, DATA
    MOV DS, AX
    
    MOV AX, X     ;X*Y
    IMUL Y        ;有符号相乘,并将乘积送AX
    
    MOV BX, AX
    MOV CX, DX    ;DX为相乘后结果的默认高八位  
    
    MOV AX, Z     ;X*Y+Z
    CWD           ;将Z扩展成双字 高位DX 低位AX
    ADD BX, AX    ;无符号加
    ADC CX, DX    ;有符号加       
    
    MOV AX, 5000  ;扩展后,默认DX为高八位
    CWD
    SUB BX, AX    ;X*Y+Z-5000
    SBB CX, DX    
    
    MOV AX, V     ;V-(X*Y+Z-5000)
    CWD
    SUB AX, BX
    SBB DX, CX      
    
    IDIV X        ;V-(X*Y+Z-5000)/X 后将结果送F
    MOV F, AX
    MOV F+2, DX   
    
    MOV AH, 4CH   ;计算结束,代码执行结束
    INT 21H
CODE ENDS
    END START
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值