首页 > 其他分享 >0168-过程调用

0168-过程调用

时间:2024-07-12 10:21:43浏览次数:17  
标签:0168 bx db mov 调用 执行 过程

环境

  • Time 2022-11-09
  • WSL-Ubuntu 22.04
  • QEMU 6.2.0
  • NASM 2.15.05

前言

说明

参考:《x86汇编语言:从实模式到保护模式》李忠

目标

通过过程调用来向屏幕输出 hello world。

过程调用

过程调用有点类似跳转,不过调用后,还会回到原来的位置继续执行。
过程调用时,首先将下一条指令入栈,等到执行完过程,再将指令出栈,恢复执行。

汇编代码

jmp start

data: db 'hello world'

start:
    mov cx,start - data
    mov bx,0x7c00 + data
    call printc
    jmp $

printc:
    mov al,[bx]
    mov ah, 0eh
    int 10h
    inc bx
    loop printc

    times 510 - $ + $$ db 0
    db 0x55
    db 0xaa

执行过程

在执行的的过程中,遇到 call 指令,就执行了一次过程调用。
同时在将字符输出完成后,回到 call 的下一条执行,执行循环。

总结

了解了汇编语言中的过程调用。

附录

标签:0168,bx,db,mov,调用,执行,过程
From: https://www.cnblogs.com/jiangbo4444/p/18297704

相关文章

  • lazreport调用fr3格式的方法
    近日使用时发现lazreport自带调用fr3的功能,按下面的方法调用就可以:1、uses添加fr3tolrf2、form添加frreport3、使用LoadFastReport3调用fr3文件LoadFastReport3(frReport控件名称,fr3格式的文件,返回相应信息); unitUnit1;{$modeobjfpc}{$H+}interfaceusesClas......
  • GRE详解:概念、架构、原理、搭建过程、常用命令与实战案例
       我们将深入探讨如何在Linux上设置GRE(GenericRoutingEncapsulation,通用路由封装)。本文将涵盖GRE的定义、架构、原理、应用场景、常见命令体系,并通过详细的实战模拟展示如何在Linux系统上实际操作。希望通过这篇文章,您能深入理解GRE技术,并能在实际中应用。......
  • C语言基础:函数的定义、调用和递归
    在C语言中,函数是一段完成特定任务的代码块,可以被多次调用和重复使用,有助于提高程序的模块化和可维护性。函数通过定义和调用来实现。函数的定义函数的定义包括函数的声明和函数体,其中函数的声明用于告诉编译器函数的名称、参数类型和返回类型,而函数体则包含了具体的实现......
  • 基于Java的科大讯飞大模型API调用实现
        写在前面:因为现在自己实习的公司新拓展的一个业务是结合AI的低代码平台,我负责后端的开发,之前一直都是直接使用gpt或者文心一言等ui界面来直接使用大模型,从来没有自己调接口过,所以本文记录一下自己第一次使用大模型的心得,小趴菜一个,大佬们勿喷~~    源码:ll......
  • 快递查询|阿里云实现调用API接口
    整体请求流程介绍:本次解析通过阿里云云市场的云服务来实现程序中对快递包裹实时监控,首先需要准备选择一家可以提供快递查询的商品。https://market.aliyun.com/apimarket/detail/cmapi00065859#sku=yuncode5985900001步骤1:选择商品如图点击免费试用,即可免费申请该接......
  • 【java】实现sse调用websocket接口,忽略wss证书并控制sse吐字速度
    maven<dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.5.3</version></dependency>AsyncConfigpackag......
  • Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和
    场景存储过程存储过程是一组为了完成特定功能的SQL语句集合。使用存储过程的目的是将常用或复杂的工作预先用SQL语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此称为存储过程。当以后需要数据库提供与己定义好的存储过程的功能相同的服务时,......
  • 【uni-app+Vue3】 API请求封装:让接口调用更便捷
    前言:uni-app是一款基于Vue.js框架的跨平台开发工具,可以将代码编译成H5、小程序、App等不同平台的应用。在进行uni-app开发时,网络请求是必不可少的环节。为了方便开发,我们可以封装一些网络请求方法,以便在多个页面中复用,并且可以统一处理错误信息等问题,提高开发效率和代码质量。......
  • 【VMware vCenter】VMware vCenter Server(VCSA) 5.5 版本证书过期问题处理过程。
    之前帮客户处理了一个因证书过期导致vCenterServer无法登录的问题,在此记录一下,因为时间过去有点久了,可能会有些地方描述的不是很清楚,所以就当作参考就行。客户环境是一个非常老的vCenterServer5.5版本并基于Linux版本的VCSA(当时这个版本还有基于Windows的,注意区别),早......
  • 前端如何取消接口调用
    ......