汇编语言程序设计实验二 带$字符串的输出

 一. 参考例题

统计一个数据串sty1中的负数、零和正数的个数,将其分别存放在变量nm、zm和pm中。

DATA  SEGMENT
    STY1  DB  -1, -128, 0, 0, 0, 1, 15, 7, 127
    NM  DB  0
    ZM  DB  0
    PM  DB  0
DATA  ENDS

CODE  SEGMENT
    ASSUME  CS: CODE, DS: DATA
  START: MOV AX, DATA
         MOV DS, AX
         MOV CX, NM-STY1;
         MOV BX, OFFSET STY1
     AA: MOV AL, [BX]      
CMP AL, 0
         JGE L1
         INC NM
         JMP BB
      L1: JG L2
         INC ZM
         JMP BB
      L2: INC PM
      BB: INC BX
         LOOP AA
         MOV AH, 4CH
         INT 21H
CODE  ENDS
END  START

二. 实验题目

编写完整的汇编语言程序,实现如下功能:

1.在屏幕上显示 Please  select  a  letter  from  a, b, c : 提示用户输入 a,b,c 中的一个字母。

2.当输入为 a 时,显示 apples  are  4$  per  Kg

当输入为 b 时,显示 bananas  are 6$  per  Kg

当输入为 c 时,显示 cranberries  are  8$  per  Kg

3.当输入其他字符时,显示 Are  you  kidding  me ? 并重新提示用户输入。

运行结果如下图所示。

DATA  SEGMENT
       D1  DB  0DH, 0AH, 'Please select a letter from a,b,c:', 0DH, 0AH, '$'
       D2  DB  0DH, 0AH, 'apples are 4', '$'
       D3  DB  0DH, 0AH, 'bananas are 6', '$'
       D4  DB  0DH, 0AH, 'cranberries are 8', '$'
       D5  DB  '$'
       D6  DB  ' per kg', 0DH, 0AH, '$'
       D7  DB  0DH, 0AH, 'Are you kidding me?', 0DH, 0AH, '$'
DATA  ENDS

CODE  SEGMENT
       ASSUME  DS: DATA,  CS: CODE

START: MOV  AX, DATA
       MOV  DS, AX

       MOV  CX, 3

AGAIN: MOV DX,OFFSET D1  ;输出提示字符串 'Please select a letter from a,b,c:'
       MOV AH,9
       INT 21H

       MOV AH,1    ;等待用户输入单字符
       INT 21H

       CMP AL,'a'
       JZ  apple

       CMP AL,'b'
       JZ  banana
       
       CMP AL,'c'
       JZ  cran
       
       MOV DX,OFFSET D7  ;输出提示字符串 'Are you kidding me?'
       MOV AH,9
       INT 21H

       JMP AGAIN

APPLE: MOV DX,OFFSET D2  ;输出提示字符串 'apples are 4$ per Kg'
       CALL UNIT
       JMP EXIT

BANANA:MOV DX,OFFSET D3  ;输出提示字符串  'bananas are 6$ per Kg'
       CALL UNIT
       JMP EXIT

CRAN:  MOV DX,OFFSET D4  ;输出提示字符串  'cranberries are 8$ per Kg'
       CALL UNIT
       JMP EXIT


UNIT PROC

       MOV AH,9          ;9号功能调用
       INT 21H

       MOV DL,D5         ;输出提示字符 '$'
       MOV AH,2
       INT 21H

       MOV DX,OFFSET D6  ;输出提示字符串 'per Kg'
       MOV AH,9
       INT 21H
       
       RET
UNIT ENDP


       LOOP AGAIN


EXIT:  MOV AH,4CH
       INT 21H

CODE  ENDS
       END  START

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值