汇编笔记2_结构

结构

Words are light, show me the codes!
exp1.asm
键入20字符到缓冲区,使用MASM
特别注意:NASM某些语法和MASM不同,并且NASM区分大小写

.586;实方式
DATAS SEGMENT use16;16位段
    n equ 20;可输入20个字符,byte类型
    buf db n+1;第一字段,1byte,检查,n+1因为要存放回车
    count db 0;第二字段,1byte,计数器
    char db n+1 dup(0);第三字段,重复定义n+1个byte类型的char,值为0,实际存放的地方
    print db 'please input:',13,10,'$';提示输入,13光标回行首,10换行,$指向输出  
DATAS ENDS

STACKS SEGMENT use16
    db 256 dup(0);
STACKS ENDS

CODES SEGMENT use16
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    lea dx,print;取ea
    mov ah,9;输出
    int 21h;软中断,此处输出输入提示
    lea dx,buf;取buf的ea
    mov ah,0ah;缓冲区键入
    int 21h;此处输入代码段代码
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

奇妙杂谈,关于$和org

$ 汇编地址计数器,标示汇编程序当前工作位置
源程序有多个段,每个段分配一个初值为0的$,然后 $按照存储单元数和目标代码长度增值.即, 当前 $的值是段内所有变量和标号的偏移地址之和.
然后说到org,举两个例子
第一个栗子org 5;令 $=5
第二个栗子org $+5;令 $= $+5,即,空出5byte

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值