深入了解汇编的第一个简单程序(对初学者很重要)

纯属个人见解:

           A  SEGMENT               ;定义变量的开始,a只是一个标号,可任意定,和下面的a ends配合相当于{},在里面定义变量
     ASTRING  DB        0AH , 0DH, "HELLO WORD",'$';如果想输出小写的hello world应使用单引号
           A  ENDS


           B  SEGMENT               ;同理,b也是一个标号而已
              ASSUME    CS:B,DS:A   ;把b定义为程序段,A设置为数据段
      HELLO:
              MOV       DX ,A       ;这里使用ax、bx、cx 、dx都没有关系,它们是通用寄存器
              MOV       DS ,DX
              MOV       DX ,OFFSET ASTRING
              MOV       AH ,09H
              INT       21H         ;以上三句合起来是输出字符串astring的

 

              MOV       AH,4CH      ;如果是ax,就用4c00h,因为ah是8位,而ax是16位。其实都是调用4c中断
              INT       21H         ;通过给AH寄存器赋值4CH,然后调用INT 21H指令,计算机就会根据AH寄
              ;存器中的值执行相应的操作?
              ;其中4CH是返回DOS系统,还可给AH寄存器赋其他值

           B  ENDS
              END       HELLO       ;这句话说明了程序的入口点是hello,所有必不可少,从hello到end hello实际是{},里面都是它的代码

 

 

 

 

 

下面是一个hello world程序的规范性代码,替换上方的A 和B:

;;;Hello World
        DATA  SEGMENT
      STRING  DB        'Hello World!!!',0AH,0DH,'$'
        DATA  ENDS
        CODE  SEGMENT
              ASSUME    CS:CODE, DS:DATA
      START:
              MOV       AX,DATA
              MOV       DS,AX

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

              MOV       AH,4CH
              INT       21H
        CODE  ENDS
              END       START

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值