《微机原理与接口技术》上一些8086汇编程序

题目来源:《微机原理与接口技术》第五版,周荷琴,中国科学技术大学出版社 第四章课后第10、11、12、13、17题
编程环境:DOSBOX 0.74 / masm611
博客编辑:Markdown (首次尝试) (~ ̄▽ ̄)~

10.编写汇编语言程序,完成如下功能:
(1) 从键盘输入一个字符串“Please input a number: ”,存入BUFF开始的内存单元。
(2) 把内容中从BUFF单元开始存放的字符串显示在屏幕上。

使用MOV对缓冲区偏移量配合INT 21的系统功能调用即可将字符串存入内存;
显示字符串时有两种方案:一种是在输入字符串时在最后加“$”符号,在打印时会将它作为结束标志,相当于C语言字符串操作中‘\0’的作用;另一种方案是在存字符串入内存时同时把输入的字符的数量存进去,显示的时候把这个数字作为循环次数一个一个把字符显示出来。

;第一种方案
MYSTACK SEGMENT STACK
        DW  64  DUP(?)
MYSTACK ENDS
DATA    SEGMENT
BUFF    DB  50
        DB  ?
        DB  50  DUP(?)
DATA    ENDS
        ASSUME  CS:CODE,SS:MYSTACK,CS:DATA
CODE    SEGMENT
START:  MOV AX, DATA
        MOV DS, AX             
        MOV DX, OFFSET BUFF    ;向缓冲区写字符串
        MOV AH, 0AH
        INT 21H          
        MOV SI, OFFSET BUFF   ;读出缓冲区偏移地址
        INC SI
        MOV AH, 00H
        MOV AL, [SI]          ;输入字符数存入AL
        INC AL
        INC AL
        MOV SI, AX
        MOV DS:[SI], '$'	  ;在字符串末存入'$'
        MOV DX, OFFSET BUFF
        INC DX
        INC DX
        MOV AH,9
        INT 21H
        INT 3
  • 35
    点赞
  • 142
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值