汇编语言程序的上机过程及调试(汇编语言源程序编写和堆栈平衡)

发布日期:2024-12-31 03:11:15     作者:藏一人     手机:https://m.xinb2b.cn/know/cpx528561.html     违规举报
汇编语言 第一个程序


源程序从写出到执行的过程第一步:编写汇编源程序产生一个存储源程序的文本文件第二步:对源程序进行编译链接编译 产生目标文件链接 产生可执行文件第三步:执行可执行文件操作系统依照可执行文件中的描述信息,将可执行文件中的机器码和数据加载到内存,并进行相关初始化,比如,设置CS:IP指向第一条要执行的命令,然后由CPU执行相关操作。伪指令汇编语言源程序中,包括两种指令,一种是伪指令,一种是汇编指令。汇编指令是有对应机器码的指令,可以被编译为机器码的指令,最终由CPU所执行。伪指令没有对应的机器码指令,CPU不会执行,编译器根据伪指令进行相关编译工作。定义一个段 XXXX segment XXXX ends程序返回一个程序P2在可执行文件中,必须有一个正在运行的程序P1,将P2从可执行文件加载入内存后,将CPU的控制权交给P2,P2运行后,P1暂停运行。当P2运行完毕后,将P2的控制权交还给P1,P1继续运行。mov ax,4c00H int 21H执行1.exe时,command将1.exe中的程序加载如内存。command设置CPU的CS:IP指向程序的第一条指令(即程序的入口),运行程序。程序运行结束之后,返回command,CPU继续运行command。编译和链接


段前缀PSP


PSP:DOS要利用PSP段前缀和被加载的程序进行通信。

bx偏移地址mov ax,[bx]mov al,[bx]loop循环指令(cx)=(cx)-1判断(cx),不为零则转至标号处执行,如果是零则向下执行段前缀

用于显式的指明内存单元的段地址。

mov ax,ds:[bx]mov ax,cs:[bx]mov ax,ss:[bx]mov ax,es:[bx]debug和masm对指令的不同处理debug将 mov ax,[0] 中的 [0] 解释成内存单元,而masm汇编源程序将其解释成 0解决方案:使用bx或者显示给出段寄存器一段安全的空间

在8086模式中,随意向一段内存空间写入内容是很危险的,因为这段空间可能存放着重要的系统数据或代码。

assume cs:codecode segmentstart:mov ax,0 mov ds,ax mov ds:[26h],ax mov ax,4c00h int 21hcode endsend start


练习

计算 ffff:0006 单元中的数乘以123,结果存储在dx中。

汇编源程序中,数字不能以字母开头跳出循环g IP

assume cs:codecode segment mov ax,0ffffH mov ds,ax mov bx,6 mov al,[bx] mov ah,0 mov dx,0 mov cx,123 s:add dx,ax loop s mov ax,4c00H int 21Hcode endsend

数据放在什么位置?之前的程序中只有一个代码段,那么数据应该存放在什么位置?为了保证数据安全,0:200 ~ 0:2FF是相对安全的,但是这段空间容量只有256个字节,如果超出这个限制,数据应当如何存放?数据段


assume cs:codecode segment ; define word dw 0123H, 0456H, 0789H, 0abcH, 0defH, 0fedH, 0cbaH, 0987Hstart:mov bx,0 mov ax,0 mov cx,8 s:add ax,cs:[bx] add bx,2 loop s mov ax,4c00H int 21Hcode endsend start

call指令

当CPU执行 call 标号时,相当于进行:

push IPjmp near ptr 标号

当CPU执行 call far ptr 标号时,相当于进行:

push CSpush IPjmp far ptr 标号ret和retf指令ret:pop IPretf: pop IP pop CS堆栈平衡EBP栈底指针ESP栈顶指针进入call前与执行call后EBP和ESP的值不变push ebp:相当于 sub,esp,4 和 mov [esp],ebppop ebp:相当于 mov ebp,[esp] 和 add esp, 4补充指令

XCHG

交换指令只可以在寄存器之间、寄存器与存储器之间进行两个操作数长度必须相等例如:XCHG AX,BX

NOT

取反指令,
 
 
本文地址:https://xinb2b.cn/know/cpx528561.html,转载请注明出处。

推荐图文
推荐经验知识
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  违规举报  |  蜀ICP备18010318号-4  |  百度地图  | 
Processed in 0.045 second(s), 1 queries, Memory 0.59 M