汇编语言中的start有什么用

一 START END

开头有个START
结尾有个END

1.汇编语言中的start有什么用?

start就是一个标号,标志程序的入口而已,程序加载到内存之后CS:IP会指向这个标号,从START指向的指令开始运行
这个标号不一定是START,你也可以用MAIN,但在程序的最后要用END MAIN来提示程序结束
START也不一定在代码段的最前面,它的前面是可以有指令或数据的
例子(没有用start,用了main)(在代码段里放置变量是十分不规范的,这里只是为了举例):
assume cs:code
code segment
a db 0
b db 0
main:
mov ax,0
mov ax,4C00H
int 21H
code ends
end main

当然,start和main在汇编代码中也可以同时存在,看具体的需要而定。

2.汇编语言中START和MAIN有区别么?

没有区别,都是标号。叫什么都行
start: 作为汇编程序的一个标号,定义了程序的入口,既程序从start:处开始执行。
若程序的第一条指令就是程序的入口,则start可以缺省。

start 使用结构如下:
start: \可以定义程序的入口 ,也可以仅仅作为一个标号来用

end start \定义程序段结束 (作为标号时,可以没有对应的end start)
其中 start 可以用其他字符代替,但是对应的end start 中的start也必须用同字符代替。
若第一个start缺省,则end start中的 start 也必须去掉。
········································································································
最后到底是end start还是end main,要看程序中的汇编指令倒底是从哪儿开始执行的,一般看assume伪指令下面的一行的main:还是start:就可以。

二 例题

2.1 求出首地址为 DATA 的 100D 字数组中的最小偶数

;15、试编写一个汇编语言程序,求出首地址为 DATA 的 100D 字数组中的最小偶数,并把它存放在 AX 中。
.model small
.datadata dw 10,9,8,7,6,5,4,3,2,1,90 dup(60)
.codestart:mov ax,@datamov ds,axcall minevenmov ah,4chint 21hmineven procpush bxpush cxpush dxpush simov bx,offset datamov si,0mov cx,100mov ax,[bx][si]checker:mov dx,[bx][si]test dx,1bjnz continue;check if evencmp ax,dxjle continuemov ax,dxcontinue:add si,2loop checkerpop sipop dxpop cxpop bxretmineven endp
end start

2.2 汇编统计非数字字符

;19、从键盘输入一系列以 $ 为结束符的字符串,然后对其中的非数字字符计数,并显示出计数结果。
.model small
.datastrings db '1234fdsa56fdsafdsa7fdsa890$'
.codestart:mov ax,@datamov ds,axcall countermov ah,4chint 21hcounter procpush axpush bxpush dxpush simov bx,offset stringsmov si,0mov ax,0startcount:mov dl,[bx][si]cmp dl, '0'jl nextloopcmp dl,'9'jg nextloopinc axnextloop:cmp dl,'$'je displayinc sijmp startcountdisplay:mov dx,10div dladd al,'0'add ah,'0'push axmov dl,almov ah,02hint 21hpop axmov dl,ahmov ah,02hint 21hpop sipop dxpop bxpop axretcounter endpend start

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/759643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

流畅的 Python 第二版(GPT 重译)(十三)

第二十四章:类元编程 每个人都知道调试比一开始编写程序要困难两倍。所以如果你在编写时尽可能聪明,那么你将如何调试呢? Brian W. Kernighan 和 P. J. Plauger,《编程风格的要素》 类元编程是在运行时创建或自定义类的艺术。在 P…

Spring Data访问Elasticsearch----查询方法

Spring Data访问Elasticsearch----查询方法 一、查询lookup策略1.1 声明的查询 二、创建查询三、方法返回类型四、使用Query注解 一、查询lookup策略 Elasticsearch模块支持所有基本的查询构建功能,如字符串查询、native搜索查询、基于条件的查询和从方法名派生的查…

vue3+vite+Electron构建跨平台应用

1.搭建第一个 electron-vite 项目 electron-vite 是一个新型构建工具,旨在为 Electron 提供更快、更精简的开发体验。它主要由五部分组成: 一套构建指令,它使用 Vite 打包你的代码,并且它能够处理 Electron 的独特环境,包括 Node.js 和浏览器环境。 集中配置主进程、渲染…

局域网内怎么控制另一台电脑

局域网内怎么控制另一台电脑 在局域网内控制另一台电脑是一个相对高级的操作,通常用于远程管理、技术支持或资源共享等场景。要实现这一功能,需要确保两台电脑都连接到同一个局域网,并且已进行适当的配置。以下是几种常见的方法:…

【蓝桥杯选拔赛真题42】C++切蛋糕 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解析

目录 C切蛋糕 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C切蛋糕 第十四届蓝桥杯青少年创意编程大赛C选拔赛真题 一、题目要求 1、编程实现 有一块矩形蛋糕,小明从蛋糕…

汽车信息安全--密钥管理系统初探(2)

目录 1.HSM中的密钥管理 1.1 密钥生成 1.2 密钥分发 1.3 密钥使用 1.4 密钥存储 <

GCN-Align论文翻译

GCN-Align翻译 Cross-lingual Knowledge Graph Alignment via Graph Convolutional Networks 基于图卷积网络的跨语言知识图谱对齐 Abstract 多语言知识图&#xff08;KGs&#xff09;&#xff0c;如DBpedia和YAGO&#xff0c;包含几种不同语言的实体结构化知识&#xff0c…

linux arm64 opencv 使用MJPG获取摄像头图片

先上代码 #include <opencv2/opencv.hpp>cv::VideoCapture capture(9, cv::CAP_V4L2);if (!capture.isOpened()){qDebug() << "打开摄像头失败";return -1;}if(1){// 设置为 MJPG (Motion-JPEG, compressed)qDebug() << "MJPEG:" <…

墨菲安全在软件供应链安全领域阶段性总结及思考

向外看&#xff1a;墨菲安全在软件供应链安全领域的一些洞察、思考、行动 洞察 现状&挑战&#xff1a; 过去开发安全体系是无法解决软件供应链安全问题的&#xff1b;一些过去专注开发安全领域的厂商正在错误的引导行业用开发安全思维解决软件供应链安全问题&#xff0c;治…

树形递归模板

详情参考CSDN链接: https://www.cnblogs.com/lidar/p/12972792.html public class Menu {// 菜单idprivate String id;// 菜单名称private String name;// 父菜单idprivate String parentId;// 菜单urlprivate String url;// 菜单图标private String icon;// 菜单顺序private …

laravel10使用firebase/php-jwt 6.0

话不多说&#xff0c;直接上示例 <?php /*** Created by PhpStorm* User: xxx 根据自己情况设置* Date: 2024/3/20* Time: 15:53* Brief:* docs:*/namespace App\lib\jwt;use App\Exceptions\BaseException; use Exception; use Firebase\JWT\JWT; use Firebase\JWT\Key;c…

[linux] Key is stored in legacy trusted.gpg keyring

修复 Ubuntu 中的 “Key is stored in legacy trusted.gpg keyring” 问题_key is stored in legacy trusted.gpg keyring (/etc/-CSDN博客 复制到trusted.gpd.d 目录中(快速但不优雅的方法) 如果你觉得手动做上面的事情不舒服&#xff0c;那么&#xff0c;你可以忽略这个警告…

SpringCloud中的@EnableDiscoceryClient和@EnableFeignClients注解的作用解析、RPC远程过程调用

目录 EnableDiscoveryClient 服务发现的核心概念 服务注册中心 EnableDiscoveryClient注解的作用 服务心跳健康检查 使用示例 EnableFeignClients Feign简介 EnableFeignClients注解的作用 RPC&#xff08;Remote Procedure Call&#xff09; 参考链接 Spring Cloud…

vue3 + Element + nodejs 大文件上传、断点续传

前言 大文件上传&#xff0c;一般时间都比较长&#xff0c;这么长的时间内&#xff0c;可能会出现各种各样的问题&#xff0c;比如断网&#xff0c;一旦出错&#xff0c;我们的文件就需要重新上传&#xff0c;这样造成资源浪费&#xff0c;如果我们使用了断点续传继续就不会造成…

ES6 Fetch API的基础使用

XMLHttpRequest 的问题 所有的功能全部几乎在同一个对象上&#xff0c;容易书写出混乱不易维护的代码 采用传统的事件驱动模式&#xff0c;无法适配的 Promise Api Fetch Api 的特点 并非取代 AJAX,而是对 AJAX 传统 API 的改进 精细的功能分割:头部信息、请求信息、响应信…

javaScript——BFS结合队列求迷宫最短路径

这里推荐先去看下B站这个老师讲的BFS迷宫问题&#xff0c;只用看前五分钟就能懂用BFS队列实现的原理。[POJ] 3984 迷宫问题 BFS_哔哩哔哩_bilibili 问题描述&#xff1a;由m*n的矩阵构成了一个迷宫&#xff0c; 矩阵中为1的元素表示障碍物&#xff0c;不能走&#xff0c;为0表示…

如何在职场中提升自己的竞争力

随着社会的发展&#xff0c;职场竞争日益激烈。如何在职场中提升自己的竞争力&#xff0c;成为许多职场人士关注的焦点。本文将从以下几个方面为大家提供一些建议。 一、不断学习&#xff0c;提升专业技能 在职场中&#xff0c;专业技能是衡量一个人竞争力的重要标准。要想在职…

软考高级:项目管理-软件质量控制和质量保证概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

让数据在两个buckets之间传输 - Google Storage Transfer Service

在业务场景中&#xff0c; 有时我们不想直接暴露数据存储空间给上游系统&#xff0c; 而需要设置1个landing Path 让上游系统发送数据 如图&#xff1a; 我们只需grant landing bucket 的权限给上游系统&#xff0c; 而上游系统是访问不了storage bucket的保证了数据隔离 但是…

这个小技巧真不错!

大家好&#xff0c;我是前端队长。前端程序员&#xff0c;2023年开始玩副业。玩过AI绘画&#xff0c;公众号爆文项目&#xff0c;累计变现五位数。 今天看到萌萌在陪伴群分享了我公众号次图封面显示不全的问题。 这里我分享设计师萌萌的方法&#xff0c;很简单&#xff0c;但是…