汇编语言

1. 编程题: 设在数据段中定义有三个变量X,Y,Z,其中X的值为8,Y的值为9,请利用算术移位指令编写程序,计算出下式的值(假设乘积的结果只有低16位有效)。

    具体程序为:

DATA SEGMENT

   X DW 8

   Y DW 9

   Z DW ?

DATA ENDS

 

ASSUME CS:CODE,DS:DATA

 

CODE SEGMENT

START:

     MOV AX,DATA

     MOV DS,AX

     MOV AX,X

     MOV BX,Y

     ADD AX,BX  ;X+Y

     SHL AX,1   ;(X+Y)*2                                                 

     MOV BX,AX

     MOV CL,2

     SHL AX,CL

     ADC AX,BX

     MOV Z,AX

CODE ENDS

     END START

2. 编程题:编程实现: S=1+2+3+……+100  ,要求计算后的结果存放在变量S里

    具体程序为:

DATA SEGMENT

    S DW (?)

DATA ENDS

CODE SEGMENT

     ASSUME CS:CODE,DS:DATA

START:

      MOV AX,DATA

      MOV DS,AX

      MOV CX,100

      MOV AX,0H

      MOV BX,1H

LOOP1:

      ADD AX,BX

      INC BX

      LOOP LOOP1          

      MOV S,AX

      MOV AH,4CH

      INT 21H

 CODE ENDS

      END START

3. 编程题:已知有两个双字长度的数DATA1和DATA2,要求用8086汇编语言编程实现两数相加,并将结果存放在result中,采用高地址优先存储结果(如1234H,5678H表示56781234H)。程序的数据段部分已给出,要求补充完整程序,实现上述要求的功能。

   3)具体程序设计

DATA SEGMENT

DATA1      DW          5311H,8A13H   ;表示数据8A135311H

DATA2      DW      4783H,9526H   ;表示数据95264783H

RESULT     DW     2 DUP(?)     ; 存放多字节加法的结果

DATA ENDS

 

CODE SEGMENT

  ASSUME CS:CODE,DS:DATA

START:

    MOV AX,DATA

    MOV DS,AX

    MOV AX,DATA1

    MOV DX,DATA1+2

    ADD AX,DATA2      ;低字部分相加

    ADC DX,DATA2+2  ;高字部分带进位相加

    MOV RESULT,AX       ;存放低字部分相加结果

    MOV RESULT+2,DX        ;存放高字部分相加结果  

CODE ENDS

  END START

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯子佳人傻了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值