汇编语言:第四章 第一个程序

4.1一个源文件从写出到执行的过程

a.编写源文件(伪指令+汇编指令)

b.编译连接

c.执行

4.2源程序

程序4.1

assume cs:codesg                   //将段codesg与cs段寄存器关联,表示这是一个代码段(指令段)

codesg segment         //段开始  段名为codesg

  mov ax,0123H

  mob bx,0456H

  add ax,bx

  add ax,ax

  

  mov 4c00H        //返回的固定指令

  int 21H             //返回的固定指令

codesg ends         //段结束标记

end             //程序结束

4.3编辑源程序

将上述源程序用记事本写入文件,ASM后缀名即可

4.4编译

利用masm 命令编译指定ASM文件 生成OBJ文件

4.5连接

利用link 命令连接指定OBJ文件 生成EXE文件

4.6简化方式编译和连接

masm 1

link 1

4.7执行

在DOS下直接使用1来运行1.exe

4.8谁将可执行文件装入内存并执行它

通用操作系统都有一个外壳(shell)用于操作计算机系统进行工作,DOS系统里的command.com就是DOS的shell

系统启动完成一些初始化之后就会执行这个command程序,该程序会一直显示C:\等待用户输入指令,执行完成还会继续等待输入

1)1.exe运行是由正在运行的command程序把它载入内存的

2)command程序把CPU的CS:IP指向程序的第一条指令,即程序入口使程序得以运行

3)程序运行之后返回到command程序,CPU继续运行command.

程序加载过程

4.9程序执行过程的跟踪

debug 1.exe

时间: 2024-10-08 14:12:36

汇编语言:第四章 第一个程序的相关文章

汇编语言学习第四章-第一个程序

本博文系列参考自<<汇编语言>>第三版,作者:王爽 前面的几章中我们断断续续的学习了一些指令,但是从来没有完整的通过汇编语言编写一个可执行文件即.exe文件.从本章开始我们将开始使用汇编语言并通过编译器编译链接一个完整的可执行文件. 4.1 一个源程序从写出到执行的过程 如下图所示,为一个完整的汇编程序到执行的过程: 上图的过程可以总结成以下几个步骤: (1) 根据汇编语言语法规则和目标程序工程编写汇编程序.这一步在文本编辑器或者在一些IDE中编写. (2) 通过汇编编译器将编写的

汇编语言(王爽) 第4章 第一个程序

这章算是一个实践部分把,写 了一个汇编程序,并用debug去跟踪每条指令的进程,看寄存器和内存的变化,算是对之前的一个小总结把 4.1 源程序到执行的过程 一个汇编程序写好,要编译成目标文件,文件后缀是obj的,再链接形成exe后缀的,再接着去执行 4.2 源程序 直接上图把 伪指令由编译器执行,汇编指令由CPU执行 assume是伪指令,关联段寄存器和程序中用segment and end代表的段关联 segment 和ends表示段的开始和结束 end表示整个程序结束 另外程序会有个叫程序返

汇编语言第四章总结

终于到了自己编写一个完整的汇编语言源程序的时刻,生成可执行文件,但这要经历一个漫长的过程 下面将知识点总结如下: 一.汇编语言源程序中包含两种指令,一种是汇编指令(有对应的机器码,可被编译为机器指令,最终被CPU执行),一种是伪指令(无对应机器码,不能被CPU执行) 二.汇编源程序举例: assume cs:codesgcodesg segment mov ax,2000h mov ss,ax mov sp,0 add sp,10 pop ax pop bx push ax push bx po

第十四章 并行函数程序

本章介绍 ■ 用不可变数据简化并行化(parallelization) ■ 处理任务并行库(Task Parallel library) ■ 用 LINQ 以声明方式表达并行度(parallelism) ■ 实现重载(overloaded)运算符 赞成函数式编程的论据,我们已经看到许多.原因之一就是,并行度现在变得越来越重要.写可以适应大量核心的代码,与使用典型的命令式方法相比较,以函数风格容易得多的. 来自函数世界的两个概念是本质,并行计算是声明性的编程风格,使用不可变的数据结构,这两者密切相

前端:CSS第四章第一节

第一部分:样式规则                                                   块级元素一行只有一个,比如P标签 CSS层叠样式表,意思就是样式是可以叠加的,比如下面的代码 <style> .ok{ color: aqua; } .blue{ color: #5283ff; }/*p名词叫标签选择器*/ p{ color: black; font-size: 30px; } /*#red属于TAG*/ #red{ color: #080dff } <

第四章-函数与程序结构

4.1 #include <stdio.h> #define MAXLINE 1000 int add_getline(char line[], int max); int strindex(char source[], char searchfor[]); char pattern[] = "ray"; int main(void) { char line[MAXLINE]; int found = 0; while(add_getline(line, MAXLINE)

第四章知识汇总

第四章    第一个程序 4.1    一个源程序从写出到执行的过程 第一步:编写汇编源程序 使用文本编辑器,用汇编语言编写汇编源程序,这一步工作的结果是产生了一个存储源程序的文本文件 第二步:对源程序进行编译连接. 使用汇编语言编译程序对源程序文件中的源程序进行编译,产生目标文件进行连接,生成可在操作系统中直接运行的可执行文件. 可执行文件包含两部分内容. (1)程序(从源程序中的汇编指令翻译过来的机器码)和数据(源程序中定义的数据) (2)相关的描述信息(比如,程序有多大,要占用多少内存空间

《大道至简》第四章

第四章主要讲了在做项目时我们如何与客户进行有效的沟通的问题,让我又一次意识到做项目真的不是一件简单的事,软件工程不仅是一个团队的工作,它真的是一件大工程.第四章第一节就讲到了这样一个问题: 客户不会用 C,难道就会用 UML 吗? 看到题目后瞬间就意识到了客户与程序员之间要达成意见合适且有效的合同期间的沟通是非常重要的.比如说,你总不能用C UML这些语言的专业词汇去和客户沟通,因为他们是根本听不懂的自然达成项目的意见一致也成了天方夜谭,毕竟我们在学这些编程高级语言时也费了不少功夫,掉不少头发呢

第一章 第四节 Hello World程序

1.第一个HelloWorld程序 上节完成Java环境变量配置之后,我们就可以写第一个程序了. 首先,我们在硬盘上创建一个test.txt文件,并把test.txt文件改成后缀为.java的test.java文件,并用记事本打开,写下如下代码: class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World"); } } 代码写完记得保存哦.然后在命令行模式下进入这个.