programing
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;} th{border: 1px solid gray; padding: 4px; background-color: #DDD;} td{border: 1px solid gray; padding: 4px;} tr:nth-child(2n){background-color: #f8f8f8;}
| assume cs:codesg codesg segment ; codesg 段开始 start: mov ax , 0123 mov bx , 0456 add ax , bx add ax , ax mov ax , 4c00 int 21h ;后面两条指令实现程序返回,交还控制权 codesg ends ;codesg 段结束 end |
定义了一个 codesg 的段,这个段中存放我们的代码,开头伪指令用 assume 将用做代码段的段 codesg 和 CPU 中的段寄存器 cs 联系起来。 |
| XXX segment ;XXX 段开始 : : : XXX ends ;XXX 段结束 |
segment 和 ends 是一对成对使用的伪指令 ,这是写可被编译器编译的汇编文件时,必须要用到的一对伪指令。segment 和 ends 的功能是定义一个段,segment说明一个段的开始,ends说明一个段的结束。 一个汇编程序由多个段组成,这些段被用来存放代码、数据、或当作栈空间来使用。一个源程序中所有将被计算机所处理的信息:指令,数据,栈,被划分到了不同的段中。 |
| end | 一个汇编程序的结束标记,编译器在编译汇编程序的过程中,如果碰到伪指令 end ,就结束对源程序的编译。 |
| assume | “假设”,它假设某一段寄存器和程序中的某一个用 segment ... ends 定义的段相关联。通过这种关联,需要的情况下编译程序可以将段寄存器和某一个具体的段相联系关联起来。 |
2、源程序中的“程序”
| eg: 编程运算 2^3 ①定义一个段叫做“abc”; ②段中写入汇编指令; ③指出程序在哪里结束; ④adc 当作代码段来用;(对于这个例子非必须) 为了程序运行结束能交出cpu控制权,应该在最后加上中断 返回;在同edit编辑代码的时候可以在数后面加上h,不加会出错 |
assume cs:abc abc segment mov ax , 2 mov ax , ax mov ax , ax mov ax , 4c00h int 21 abc ends end |
调试跟踪汇编程序
|
ds 存放 PSP 的段地址,偏移为 0,所以程序的物理地址就是 SA*16+0+256=SA*16+16*16+0=(SA+16)*16+0;
最终就是:SA+10:0
DS=075A , PSP 的地址就为 075A:0 ; 程序的地址就为 CS:IP = 076A:0
|
programing的更多相关文章
- Android Programing 学习笔记(一)
最近学习android 开发,拜读android programing,一步一步学习.囫囵吞枣,现已看到第十八章.今天把最近的学习过程中学到的一些内容进行一下总结. 一:Fragment 和 Acti ...
- lua 初接触 --- The first time use Lua for programing
The first time use Lua for programing Wang Xiao 1. 关于 lua 的变量类型: lua 变量的定义与matlab有点不同: local d , f ...
- AOP 面向方面的编程 Aspect Oriented Programing --第一次听说呢,汗!
http://wayfarer.cnblogs.com/articles/241024.html 抄在这里,方便复习! AOP技术基础 1.引言2.AOP技术基础 3.Java平台AOP技术研究4 ...
- 1.3 History of Android Plug-in Programing
In July 27, 2012 , it was the first milestone in Android plug-in technology. Yimin Tu(mmin18 o ...
- Chapter 1: Plug-in programing from past to the future
It is the best time. Although the internal API of Android not allowed to be modified by google play, ...
- 动态规划——DP算法(Dynamic Programing)
一.斐波那契数列(递归VS动态规划) 1.斐波那契数列——递归实现(python语言)——自顶向下 递归调用是非常耗费内存的,程序虽然简洁可是算法复杂度为O(2^n),当n很大时,程序运行很慢,甚至内 ...
- Socket programing(make a chat software) summary 1:How to accsess LAN from WAN
First we should know some basic conceptions about network: 1.Every PC is supposed to have its own IP ...
- First step to Signal —— in Linux C Programing
1. What's signal 信号是软件中断,提供了一种处理异步事件的方法.(见<Unix环境高级编程>)一般使用时需包含 signal.h 库. 每个信号命名由SIG开头,实际值为正 ...
- expert C Programing notes
1.寻常算术转换 在运算中 如果其中一个操作数是long double 则另一个转为long double,其次 如果有一个为double 则另一个转为double,再次 float . unsign ...
- programing Python --Sys module
Recall that every python module has a built_in __name__ variable that python sets to the __main__ st ...
随机推荐
- java的Xmx是设置什么的?
我们使用java -X可以看到java的-X系列的参数,Xmx和Xms是相对应的.一个是memory max(Xmx) 一个是memory start (Xms). Xmx代表程序最大可以从操作系统中 ...
- BASIC-3 字母图形 循环 字符串
基础练习 字母图形 时间限制:1.0s 内存限制:256.0MB 问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCD ...
- python如何玩“跳一跳”!(windows安桌版本请进!)
最近"跳一跳",很火爆,有木有? 看了一下网上的教程,动作搭建了一下环境,就可以用脚本自动跑起来啦!!! 下面说一下android手机的实现过程: 首先,是python环境的搭建 ...
- C#调用windows api 实现打印机控制
using System; using System.Text; using System.Runtime.InteropServices; using System.Security; using ...
- BaseServer的介绍
服务器类型 5种类型:BaseServer,TCPServer,UnixStreamServer,UDPServer,UnixDatagramServer.注意:BaseServer不直接对外服务. ...
- Redis Sentinel配置小记
Sentinel是一个管理多个redis实例的工具,它可以实现对redis的监控.通知.自动故障转移.sentinel不断的检测redis实例是否可以正常工作,通过API向其他程序报告redis的状态 ...
- java多线程之守护线程以及Join方法
版权声明:本文出自汪磊的博客,转载请务必注明出处. 一.守护线程概述及示例 守护线程就是为其它线程提供"守护"作用,说白了就是为其它线程服务的,比如GC线程. java程序中线程分 ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇
优化篇 Spring+SpringMVC+MyBatis+easyUI整合优化篇(一)System.out.print与Log Spring+SpringMVC+MyBatis+easyUI整合优化篇 ...
- 在HTML页面中获取当前项目根路径的方法
在HTML页面获取项目根路径的方法: function getRootPath(){ var curPageUrl = window.document.location.href; var rootP ...
- asp.net core使用Swashbuckle.AspNetCore(swagger)生成接口文档
asp.net core中使用Swashbuckle.AspNetCore(swagger)生成接口文档 Swashbuckle.AspNetCore:swagger的asp.net core实现 项 ...