汇编入门学习笔记 3+5

下面是3+5的汇编程序的代码和解释,记录一下,方便自己回顾:

 

;完整段的求3+5的和
DATAS  SEGMENT
    FIVE  DB    5  ;定义5为字节类型变量,FIVE是变量的名字  类似C中int five=5赋值。
DATAS  ENDS

STACKS  SEGMENT
      DB  128 DUP (?)
STACKS  ENDS

CODES  SEGMENT
     ASSUME    CS:CODES,DS:DATAS,SS:STACKS  ;假设每个段寄存器获得段地址的位置,相当于C中的函数声明
START:
    MOV AX,DATAS ; 将伪段地址放入ax中,datas不是指令,而是伪指令,实际上是一个动态的内存地址.
                 ; 要想运行,必须先其地相放入到ds中,但是内存数不能放入段地址
    MOV DS,AX    
    ;mov ds,ax ;就是将段地址装入段寄存器,最终达到了段地址装入段寄存器的目的!
    ;在80X86中规定,内存数不可以直接装入段寄存器,所以才会有这样的一次中转!
    MOV AL,FIVE  ;将字节变量5存入到寄存器中,也可MOV AL,5
    ADD AL,3   ;将寄存器中的值取出,加上3后放回
    ADD AL,30H  ;需要转化成ASCII码才能进行显示,8对应ASCII码为38H,故加上30H
    MOV DL,AL ;将待输出字符的ASCII码传到DL中去
    MOV AH,2  ;将02命令放入AH中,表示输出DL
    INT 21H   ;DOS系统调用放入AH的命令
    
    MOV AH,4CH ;就是结束本程序,返回 DOS 操作系统。
    INT 21H  ;DOS系统调用放入AH的命令
CODES  ENDS
    END  START

另外,附一下关于 INT 21H的讲解:

http://blog.csdn.net/bill_ming/article/details/7305269

 

posted @ 2017-12-20 16:15  hinata_hajime  阅读(1030)  评论(0编辑  收藏  举报