汇编语言(二)字符及字符串输入输出与顺序程序设计实验

1.要求:从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。

DATA SEGMENT

     INFOR1  DB  "Please Input the First Data(<10):$"
     INFOR2  DB  0AH,0DH,"Please Input the Second Data(<10):$"
     INFOR3  DB  0AH,0DH,"The Result is:$"

DATA ENDS

CODE SEGMENT
     ASSUME CS:CODE,DS:DATA

START:
     MOV AX,DATA
     MOV DS,AX

     MOV DX,OFFSET INFOR1
     MOV AH,9
     INT 21H

     MOV AH,1
     INT 21H
     SUB AL,30H
     MOV BL,AL

     MOV DX,OFFSET INFOR2
     MOV AH,9
     INT 21H

     MOV AH,1
     INT 21H
     SUB AL,30H
     MOV CL,AL

     XOR AH,AH
     ADD AL,BL
     AAA

     PUSH AX
     MOV DX,OFFSET INFOR3
     MOV AH,9
     INT 21H

     ADD BL,30H
     MOV DL,BL
     MOV AH,2
     INT 21H
     MOV DL,'+'
    ;MOV AH,2
     INT 21H
     ADD CL,30H
     MOV DL,CL
    ;MOV AH,2
     INT 21H
     MOV DL,'='
    ;MOV AH,2
     INT 21H

     POP AX
     MOV DL,AH
     ADD DL,30H

     PUSH AX
     MOV AH,2
     INT 21H

     POP AX
     MOV DL,AL
     ADD DL,30H
     MOV AH,2
     INT 21H

     MOV AH,4CH
     INT 21H

CODE ENDS
     END START

2、设a,b,c,d为四个压缩型BCD数,它们被存放在内存dbcd开始的4个存储单元中,计算a+b+c+d,并将结果在屏幕上显示出来(注意压缩型BCD数的表示方法:十进制数38表示成压缩型BCD数时应写成38H)。程序编写完成并运行正确后,打开源程序,改变a,b,c,d的内容,然后重新进行汇编、连接并运行程序,检查程序运行结果与手工计算结果是否相符。下面给出几组实验用数据:

(1) a=11, b=23, c=25, d=31

(2) a=10, b=20, c=30, d=40

(3) a=45, b=45, c=45, c=45

(4) a=88, b=99, c=77, d=66

CODE SEGMENT
     ASSUME CS:CODE
START:

      MOV AX,0DBCDH
      MOV DS,AX


;      MOV DS:[0],BYTE PTR 11H
;      MOV DS:[1],BYTE PTR 23H
;      MOV DS:[2],BYTE PTR 25H
;      MOV DS:[3],BYTE PTR 31H

      MOV DS:[0],BYTE PTR 10H
      MOV DS:[1],BYTE PTR 20H
      MOV DS:[2],BYTE PTR 30H
      MOV DS:[3],BYTE PTR 40H

;      MOV DS:[0],BYTE PTR 45H
;      MOV DS:[1],BYTE PTR 45H
;      MOV DS:[2],BYTE PTR 45H
;      MOV DS:[3],BYTE PTR 45H

;      MOV DS:[0],BYTE PTR 88H
;      MOV DS:[1],BYTE PTR 99H
;      MOV DS:[2],BYTE PTR 77H
;      MOV DS:[3],BYTE PTR 66H

      MOV DH,0
      MOV CX,4
      MOV BX,0
      MOV AL,0

A:    ADD AL,[BX]
      DAA
      INC BX
      JC S
      LOOP A

      JNC B     ;USE S TO JMP->B
S:    
      INC DH
      OR DH,DH  ;CF=0
      LOOP A

B:    PUSH AX
      ADD DH,30H
      MOV DL,DH
      MOV AH,2
      INT 21H

      POP AX
      PUSH AX
      SAR AL,1
      SAR AL,1
      SAR AL,1
      SAR AL,1

      AND AL,0FH
      ADD AL,30H
      MOV DL,AL
      MOV AH,2
      INT 21H

      POP AX

      AND AL,0FH
      ADD AL,30H
      MOV DL,AL
      MOV AH,2
      INT 21H
      

     MOV AH,4CH
     INT 21H

CODE ENDS
     END START

3.要求:从键盘输入两个一位十进制数,计算这两个数之积,并将结果在屏幕上显示出来。

	DATA SEGMENT

     INFOR1  DB  "Please Input the First Data(<10):$"
     INFOR2  DB  0AH,0DH,"Please Input the Second Data(<10):$"
     INFOR3  DB  0AH,0DH,"The Result is:$"

DATA ENDS

CODE SEGMENT
     ASSUME CS:CODE,DS:DATA

START:
     MOV AX,DATA
     MOV DS,AX

     MOV DX,OFFSET INFOR1
     MOV AH,9
     INT 21H

     MOV AH,1
     INT 21H
     SUB AL,30H
     MOV BL,AL

     MOV DX,OFFSET INFOR2
     MOV AH,9
     INT 21H

     MOV AH,1
     INT 21H
     SUB AL,30H
     MOV CL,AL

     XOR AH,AH
     MUL BL
     AAM

     PUSH AX
     MOV DX,OFFSET INFOR3
     MOV AH,9
     INT 21H

     ADD BL,30H
     MOV DL,BL
     MOV AH,2
     INT 21H
     MOV DL,'*'
    ;MOV AH,2
     INT 21H
     ADD CL,30H
     MOV DL,CL
    ;MOV AH,2
     INT 21H
     MOV DL,'='
    ;MOV AH,2
     INT 21H

     POP AX
     MOV DL,AH
     ADD DL,30H

     PUSH AX
     MOV AH,2
     INT 21H

     POP AX
     MOV DL,AL
     ADD DL,30H
     MOV AH,2
     INT 21H

     MOV AH,4CH
     INT 21H

CODE ENDS
     END START

实验报告–>戳我

  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值