ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

汇编程序的简化写法

2021-05-26 13:06:25  阅读:198  来源: 互联网

标签:int 写法 汇编程序 mov start 简化 ax bx 21h


【说明】汇编语言提供了段定义等的简化写法的伪操作,可以使代码写得更简略一些。要将汇编语言作为工作语言使用的同学,可以在这一方面找资料深入一些

【案例】输出hello world!

.8086
.MODEL small
.data
  str db 'hello world!$'
.stack 20H
.code
start: mov ax,@data
       mov ds,ax
       lea bx,str ;这儿简单地用mov bx, 0将有逻辑错误。这取决于模式,请自行debug观察
output:mov dl, [bx]
       cmp dl, '$'
       je stop
       mov ah, 02H
       int 21h
       inc bx
       jmp output

 stop: mov ax,4c00h
       int 21h
end start

下面的写法,得到相同的运行结果:

assume cs:codesg, ss:stacksg, ds:datasg
stacksg segment
    db  32 dup (0)
stacksg ends
datasg segment
     str db 'hello world!$'
datasg ends
codesg segment
start: mov ax,datasg
       mov ds,ax
       mov ax, stacksg
       mov ss, ax
       mov sp, 20h

       lea bx,str
output:mov dl, [bx]
       cmp dl, '$'
       je stop
       mov ah, 02H
       int 21h
       inc bx
       jmp output

 stop: mov ax,4c00h
       int 21h
codesg ends
end start

标签:int,写法,汇编程序,mov,start,简化,ax,bx,21h
来源: https://blog.51cto.com/sxhelijian/2817175

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有