汇编语言程序的上机过程及调试(汇编语言源程序编写和堆栈平衡)
汇编语言程序的上机过程及调试(汇编语言源程序编写和堆栈平衡)
2024-07-01 06:20:40  作者:藏一人  网址:https://m.xinb2b.cn/tech/cpx528561.html
汇编语言 第一个程序

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

源程序从写出到执行的过程第一步:编写汇编源程序产生一个存储源程序的文本文件第二步:对源程序进行编译链接编译 产生目标文件链接 产生可执行文件第三步:执行可执行文件操作系统依照可执行文件中的描述信息,将可执行文件中的机器码和数据加载到内存,并进行相关初始化,比如,设置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。编译和链接

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

段前缀PSP

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

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

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

练习

计算 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个字节,如果超出这个限制,数据应当如何存放?数据段

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

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

取反指令,
  • 抖音吸引人点赞关注的句子(有哪些句字)
  • 2024-07-01有哪些句字如果你的前半生没人爱你,让请相信我会让你的下半辈子不再被尘世纷扰伤害,我愿爱你护你,以我命起誓谢谢你当初的绝情冷漠,让我终于下定决心头也不回我真的很想哭,但是我不知道有谁能帮我擦眼泪,有谁能给我温暖的。
  • 2022年建筑施工行业发展趋势(2022建筑工程发展前景解析)
  • 2024-07-012022建筑工程发展前景解析建筑工程专业如果学的比较好,特别是高等数学和工程力学、CAD与制图,那么就业前景还是很景气的,就业率的话也是很高2022建筑工程发展前景解析!  就业前景可以,待遇也行,就是太吃苦,专业可以,就业形势。
  • 妈妈我特别想抱你(妈妈我好想您)
  • 2024-07-01妈妈我好想您我最思念的妈妈,我相信今天您一定在天堂为我庆祝55岁生日妈妈,时间过得好快,今天又到我生日啦!哈哈我退休啦,我也步入老年行列了我咋就退休了呢!随着年龄的增长,我才发现妈妈留给我的东西是多么的宝贵啊妈妈。
  • 夜色暗涌时预告唐熙(遥远的婚约将播)
  • 2024-07-01遥远的婚约将播近日,由著名导演顾晶执导,邵峰、唐熙、刘威葳、刘政绯、姬晨牧、肖光奕等众多演员联袂主演的知青年代爱情大型电视剧《遥远的婚约》将在北京影视频道12月7日开播内地实力女星唐熙在剧中饰演王天娇,与刘政绯饰演。
  • 材料物理属于什么大类(材料物理专业属于什么专业类别)
  • 2024-07-01材料物理专业属于什么专业类别材料物理专业属于工学类全国本科专业分为12大学科门类:哲学、经济学、法学、教育学、文学、历史学、理学、工学、农学、医学、管理学、艺术学材料物理是从物理学原理出发提供材料结构、特性与性能的一门新兴交叉学。
  • 2023各种宠物受欢迎排名(NO.1 泰迪 聪明可爱体味小)
  • 2024-07-01NO.1 泰迪 聪明可爱体味小狗狗的品种真的多到数不胜数,但是总有那么一些品种从中脱颖而出,盘点2023“最受欢迎”狗狗排行榜,榜首惹争议,你养过几个呢?NO.1泰迪受欢迎程度:★★★★★优点:体味轻、掉毛少、好养活其实是没有泰迪。
  • 红烧猪蹄怎么做成无汤水的(红烧猪蹄这样做)
  • 2024-07-01红烧猪蹄这样做大家好,我是第一美食阿飞,每天都有几道美食分享给你,关注带你领略四海八荒的舌尖美味今天和大家分享一道“红烧猪蹄”,这是一道比较传统的菜,也是一道家常菜猪蹄营养价值丰富,满满的胶原蛋白,具有美容养颜、抗。
  • 蒋雯丽怎么老了那么多(蒋雯丽身价上亿)
  • 2024-07-01蒋雯丽身价上亿蒋雯丽文|闲撰奇侠编辑|闲撰奇侠女明星在面对丈夫出轨时都是怎么做的?徐帆说这证明了冯小刚的魅力,有男人范儿陶虹云淡风轻地说肉体出轨算不了什么而蒋雯丽“怒打小三,约会鲜肉”,手握家庭财政大权,活出人生的。
  • 暑假安全注意事项(有哪些暑假安全的事项)
  • 2024-07-01有哪些暑假安全的事项电话号码要牢记:火警119,匪警110,急救中心120暑假正值汛期,因此,严禁到池塘、水库、河、海等处私自玩耍洗澡不用湿手摸电器,发现别人触电不能用手拉,要用干木棒把电源打掉注意饮食卫生,不在剧烈运动。
  • 贝利亚真的被捷德击败了吗(捷德都继承了贝利亚哪些能力)
  • 2024-07-01捷德都继承了贝利亚哪些能力随着圆谷对于奥特曼宇宙越来越快的发展,老一辈的奥特战士也是在陆续离开第一线,而取代他们的要么是来自其它星系的年轻奥特战士,要么就是光之国老一辈奥特曼的儿子,比如赛文的儿子,泰罗的儿子,还有贝利亚的儿子。