美文网首页
16位汇编基础知识

16位汇编基础知识

作者: 温柔倾怀 | 来源:发表于2022-04-06 16:17 被阅读0次

    基础知识

    C语言程序中,程序的执行从main函数开始。main函数作为程序的入口点,在VS项目的属性中可以更改函数的入口点。
    在汇编语言中,没有特殊指定的情况下,从代码段的0开始执行,代码段寄存器CS。


    16进制的操作数如果以字母开头,则要在前面加一个0,如果是数字开头,则无所谓。


    IDT中断描述符表
    int 1 1号中断
    int 2

    基本框架

    声明代码段assume cs : code
    code 为代码段的名字,自定义。

    assume cs:code
    
    code segment ;代码段开始
    
      mov ax,4cooH
      int 21H
    code ends ;代码段结束
    
    end ;汇编语言结尾
    

    debug调试

    r 查看当前寄存器状态
    p 单步步过
    t 单步步入
    u 查看汇编代码
    d 显示内存
    g 一直向下运行


    在汇编中使用函数

    汇编中也是可以使用函数的。
    函数要写在代码段中,所有的指令都要写在代码段里。
    系统函数的返回结果通常放在ax寄存器,将想要返回的值mov到ax中。

    ;函数定义
    func proc
      ret
    func endp
    

    call func ;函数调用

    • 若在asm文件中使用了函数,需要手动指定程序执行的入口地址,否则是从第一条指令开始顺序执行。
    • 指定入口地址 start:
    • 则asm文件中结尾的end要改为end start

    包含mian函数的汇编框架

    注意

    • 第一条指令的地址在其段中为0


    常用指令

    add 两数相加,结果放在第一个操作数中,不允许两个内存做加法
    inc 自增 inc ax
    sub 操作数1减去操作数2,结果放到操作数1中
    dec 自减

    loop 循环,使用cx计数器寄存器,记录循环的次数

    相关文章

      网友评论

          本文标题:16位汇编基础知识

          本文链接:https://www.haomeiwen.com/subject/vngrsrtx.html