zoukankan      html  css  js  c++  java
  • 【汇编语言】新手第一步——HelloWorld & A+B

    国际惯例,HelloWorld。

    这个程序是masm for windows里面的样例程序。按照我自己的理解,对其加上了注释。

    ;完整段的Hello World程序
    DATAS  SEGMENT
         STRING  DB  'Hello World!',13,10,'$'
         ;定义了一个字符串,标号是STRING,其值是字符串首字符的地址。
         ;DB表示的是字符串中每个字符的都是一个字节,每往后加1的时候,地址偏移量加1.
         ;13 CR 回车
         ;10 LF 换行
         ;$作为字符串的结束符
    DATAS  ENDS
    
    CODES  SEGMENT
         ASSUME    CS:CODES,DS:DATAS
         
    START:
         MOV  AX,DATAS
         MOV  DS,AX
         
         LEA  DX,STRING;LEA 获取偏移量,并将其存入DX
         
         MOV  AH,9
         INT  21H ;INT 21H是DOS中断的调用,其执行的操作根据AH里面的值来确定。
                   ;9,表示的是输出字符串,其地址为DS:DX
        ;4CH带返回码结束
         MOV  AH,4CH
         INT  21H
    CODES  ENDS
        END   START

    然后改写了其中的两个数相加的样例。这是从控制台输入,但是只能输入一位。多位数相加正在学习中。

    DATAS SEGMENT
        ;此处输入数据段代码
        TIP1 DB 'PLEASE INPUT A:',13,10,'$'
        TIP2 DB 13,10,'PLEASE INPUT B:',13,10,'$'
        TIP3 DB 13,10,'A + B = $'
    DATAS ENDS
    
    STACKS SEGMENT
        ;此处输入堆栈段代码
    STACKS ENDS
    
    CODES SEGMENT
        ASSUME CS:CODES,DS:DATAS,SS:STACKS
    START:
        MOV AX,DATAS
        MOV DS,AX
        ;TIP ONE
        LEA DX,TIP1
        MOV AH,09
        INT 21H
        ;GET A
        MOV AH,01
        INT 21H
        SUB AL,30H
        MOV CL,AL
        ;TIP TWO
        LEA DX,TIP2
        MOV AH,09H
        INT 21H
        ;GET B
        MOV AH,01
        INT 21H
        SUB AL,30H
        ADD CL,AL
        ADD CL,30H
        ;TIP 3
        LEA DX,TIP3
        MOV AH,09
        INT 21H
        
        ;RESULT
        MOV DL,CL
        MOV AH,02
        INT 21H
        ;TAO LU
        MOV AH,4CH
        INT 21H
    CODES ENDS
        END START
  • 相关阅读:
    POJ 3281 Dining 网络流最大流
    Codeforces Gym 100203I I
    Codeforces Gym 100203G G
    Codeforces Gym 100203E E
    Codeforces Gym 100523K K
    Codeforces Gym 100523E E
    Codeforces Gym 100523C C
    Codeforces Codeforces Round #316 (Div. 2) C. Replacement SET
    Codeforces Codeforces Round #316 (Div. 2) C. Replacement 线段树
    URAL 1784 K
  • 原文地址:https://www.cnblogs.com/namenotfound/p/6193943.html
Copyright © 2011-2022 走看看