我是靠谱客的博主 迷你鞋垫,最近开发中收集的这篇文章主要介绍55.两个简单的汇编程序注释,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 输出hello world,Visual Studio可以运行的

.386
; Tells MASM to use Intel 80386 instruction set.
.model flat,stdcall
; Flat memory model
option casemap:none
; Treat labels as case-sensitive
include
C:masm32includewindows.inc
include
C:masm32includekernel32.inc
includelib
C:masm32libkernel32.lib
include
C:masm32includeuser32.inc
includelib
C:masm32libuser32.lib
.data
; Begin initialized data segment
MsgBoxCaption db "Win32 Assembly Programming",0
MsgBoxText db "Hello World!!!Welcome to ASM Programming under CLR",0
.code
; Beginning of code
start:
; Entry point of the code
invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK
invoke ExitProcess, NULL
end start

西电的奔腾微机原理P304的代码:

.DOSSEG;段次序按DOS段次序约定排序
.MODEL SMALL;内存模块采用小模式,占内存小,效率高
.486;采用486伪指令
.STACK 300H;建立3*16*16=768个字节的堆栈段
.DATA;以下存放near的有赋初值的数据,组名是DGROUP
BACK DB 2000 DUP(' ');申请2000个字节,存放的都是空格,注意''中间有空格
.CODE;以下存放代码
START:;标识程序入口
MYPROC PROC FAR;主过程模式是FAR,表示在段间
MOV DS,AX;DGROUP地址赋给DS和ES
MOV ES,AX;DS是数据段寄存器,ES是附加段寄存器
MOV CX,08H;设置计数寄存器为8,等下loop的时候就可以循环8次
MOV BL,00H;10H中断写串的时候设置背景,背景是黑色
;https://en.wikipedia.org/wiki/BIOS_color_attributes
AGAIN:	LEA BP,BACK;load effective address(LEA),把BACK的地址赋给基址指针寄存器
MOV DX,0000;数据寄存器清零,注意MOV时候的位数
MOV AH,19
;Write string
;调用10H中断来显示字符串时,各寄存器的作用如下:
;AL = Write mode, BH = Page Number, BL = Color,CX = Number of characters in string,
;DH = Row, DL = Column, ES:BP = Offset of string
MOV AL,1
;设置写串属性String contains alternating characters and attributes
PUSH CX;将循环次数暂时压入堆栈中
MOV CX,07D0H;07D0H是十进制的2000,在10H中断下表示写2000个字符
INT 10H;interrupt(INT)调用中断,10H是中断号,一般和video services有关
;https://en.wikipedia.org/wiki/INT_10H
CALL DELAY;调用DELAY这个过程,CALL有Near和Far之分。调完就回到原来的地方继续执行
;也可以在子过程中通过ret来跑回原来的地方。注意和JMP的区别
ADD BL,10H;背景色变更
POP CX;把存在栈中的计数器的值再要回来
LOOP AGAIN;CX若不等于0,则继续循环回到AGAIN标识处执行指令
MOV	AX,4C00H
INT 21H;调用21H中断,AH是4C
MYPROC ENDP;结束主过程MYPROC
DELAY	PROC NEAR;DEALY子过程是near型
PUSH DX
PUSH CX
MOV DX,10
P1:MOV CX,0FF00H
P2:DEC CX
JNZ P1
POP CX
POP DX
RET;用RET返回到call;
DELAY ENDP
END	START

 

最后

以上就是迷你鞋垫为你收集整理的55.两个简单的汇编程序注释的全部内容,希望文章能够帮你解决55.两个简单的汇编程序注释所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部