汇编语言学习 字符串输出

深入理解 JVM 原理
深入理解 JVM 原理
wangxiaoming

                                                   字符串输出

字符串操作程序设计:

对于一个汇编程序 : 有三段  数据段  堆栈段 代码段 

                    初始化程序:

MOV AX ,DATAS
MOV  DS, AX

 

为什么需要这个 ,主要是因为 mov 无法实现将立即数传入段寄存器 ,但是 MOV可以将立即数 传入通用寄存器

很多时候要多问为什么 ,我一直认为 只有可以被解释 ,可以被证明的东西 才是对的东西  否则一切都市值得怀疑的

汇编语言程序中 数据的输入时以字符形式的 0~ 9 输入时对应的 ASCII 减掉 30H 存入主存中的  输出时是加上 30H 

输出子外设上的 比如十六进制 A  主存中是 0AH 加上  37H 变成 

41H 因为主存中存的就是 41H   因此可以直接输出带外设上。。。。

 

                       现在介绍 21H 软终止操作 的基本功能模块

   1、从键盘上输入一个字符

                     AH = 01H  AL = 输入字符的ASCII 码值

栗子:

MOV AH ,01H
INT 21H

 

 

 

2  、向显示器 输出一个字符 

   入口参数 AH = 02H, DL = '欲输出的字符串码‘

   栗子:

 

MOV DL ,'C'
MOV AH , 02H
INT 21H


3 、 向显示器 输出一个字符串 

 

                          AH = 09H

                         DS = 欲输出字符串的段地址   DX = 欲输出字符串的 偏移地址 

 

MOV  DX , OFFSET STRING
MOV  AH, 09H;
INT 21H


现在给出 完整代码:

 

 

DATAS SEGMENT
    STRING DB 'HELLO WORLD!';数据段  
DATAS ENDS

STACKS SEGMENT 
    DW 256 DUP(?)
STACKS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX ,DATAS
    MOV DS, AX   ;这里开始初始化
    ;此处输入代码段代码
    MOV DX, OFFSET STRING
    MOV AH ,09H
    INT 21H
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

 

 

 

 

 

         

wangxiaoming CSDN认证博客专家 架构 Spring Boot Redis
博客是很好的总结和记录工具,如果有问题,来不及回复,关注微信公众号:程序员开发者社区,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com
©️2020 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值