【汇编语言-3】 代码、数据、堆栈在同一个段
(1) 代码段中使用数据
编程计算8个数据的和,结果保存在ax中。代码如下:
assume cs:code
dw 0123H,0456H,0789H,00bcH,00efh,0667h,072fh,0990H
mov bx,0
mov ax,0
mov cx,8
s: add ax,cs:[bx]
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end
用debug调试跟踪如下:
Debug跟踪,修改ip指向代码,让程序合法运行:
修改源代码,指明程序入口,使程序合法化:
assume cs:code
dw 0123H,0456H,0789H,00bcH,00efh,0667h,072fh,0990H
start: mov bx,0
mov ax,0
mov cx,8
s: add ax,cs:[bx]
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start
(2) 代码段中使用栈
利用栈将程序中定义的数据逆序存放:
assume cs:code
dw 0123H,0456H,0789H,00bcH,00efh,0667h,072fh,0990H
dw 0,0,0,0,0,0,0,0
start: mov ax,cs
mov ss,ax
mov sp,32; 设置栈顶ss:sp指向cs:32
mov bx,0
mov cx,8
s: push cs:[bx]
add bx,2
loop s
mov bx,0
mov cx,8
s0: pop cs:[bx]
add bx,2
loop s0
mov ax,4c00h
int 21h
code ends
end start; 指明程序的入口在start处
【汇编语言-3】 代码、数据、堆栈在同一个段相关推荐
- 堆栈、BSS段、代码段、数据段/RO、RW、ZI
嵌入式_堆栈.BSS段.代码段.数据段/RO.RW.ZI 提示:这里只针对ARM嵌入式系统所说,PC端和其他系统不议 文章目录 嵌入式_堆栈.BSS段.代码段.数据段/RO.RW.ZI 前言 一.代码 ...
- 嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误
嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误 2015-05-27 14:19 184人阅读 评论(0) 收藏 举报 分类: 嵌入式(928) 一般察看函数运行时堆栈的 ...
- 一种通过篡改特定代码数据修复嵌入式产品BUG的方法
一.前言 在嵌入式产品开发中,难以避免地会因为各种原因导致最后出货的产品存在各种各样的BUG,通常会给产品进行固件升级来解决问题.记得之前在公司维护一款BLE产品的时候,由于前期平台预研不足,OTA参 ...
- 2023美国大学生数学建模竞赛C题思路解析(含代码+数据可视化)
以下为2023美国大学生数学建模竞赛C题思路解析(含代码+数据可视化) 规则: 猜词,字母猜对,位置不对为黄色,位置对为绿色,两者皆不对为灰色. 困难模式下的要求:对于猜对的字母(绿色和灰色),下一步 ...
- python代码画皮卡丘_Python气象绘图实例我们一起画台风(代码+数据)
前段时间袭击中国的超强台风"利奇马",以及这两天袭击美国的五级飓风"多利安",让我们感受到了大自然的力量.所以,今天分享一个简单的Python实例,也算是延续前 ...
- R语言ggplot2可视化:使用长表数据(窄表数据)( Long Data Format)可视化多个时间序列数据、在同一个可视化图像中可视化多个时间序列数据(Multiple Time Series)
R语言ggplot2可视化:使用长表数据(窄表数据)( Long Data Format)可视化多个时间序列数据.在同一个可视化图像中可视化多个时间序列数据(Multiple Time Series) ...
- Python使用matplotlib可视化多个时间序列数据、在同一个可视化图像中可视化多个时间序列数据(Multiple Time Series)
Python使用matplotlib可视化多个时间序列数据.在同一个可视化图像中可视化多个时间序列数据(Multiple Time Series) 目录
- STM32如何从串口接收数据,取出数据中的密码段再保存到flash中。
STM32如何从串口接收数据,取出数据中的密码段再保存到flash中 STM32如何从串口接收数据,取出数据中的密码段再保存到flash中u8 Usart2_buf[256]; unsigned in ...
- 【杂谈】开学重磅!有三AI最强资料固态硬盘开启预订,3本书视频代码PPT,两套教学视频,所有付费专栏代码+数据...
各位,秋招临近,开学也临近了,有三AI给大家准备了一个带学习资料的固态硬盘,月底发货,喜欢的同学就好好阅读本文了解一下吧. 硬盘产品细节 本次我们的产品为固态移动硬盘,注意是固态硬盘,不是普通U盘,虽 ...
最新文章
- java mod %区别_Java中 % 与Math.floorMod() 区别详解
- matlab拟合未定义函数或变量,关于matlab的未定义函数或变量的问题
- linux mysql忘记root_linux下mysql-5.6忘记root密码,重置root密码详细过程
- lt;二gt;读lt;lt;大话设计模式gt;gt;之策略模式
- lintcode 滑动窗口的最大值(双端队列)
- c++ string后面会添加‘\0‘
- jhipster项目迁移websocket
- JSP的7个动作指令-forward指令
- IndexError:boolean index did not match indexed array along dimension 0
- Python适合自己的IDE才是最好的IDE
- HDFS读流程,写流程,放置策略
- Java带有效期的Map
- 7种网络摄像机的设计方案,包含软硬件设计
- 程序员期望月薪那些事儿
- Python 机器学习 | 超参数优化 黑盒(Black-Box)非凸优化技术实践
- 唯品会服务器信息,唯品会商品详情信息接口
- java解析 电力协议_DLT645解析JAVA JAVA解析DLT645电表通信协议 - 下载 - 搜珍网
- php字符串6,6.PHP字符串
- golang pbkdf2加密存储用户密码
- CentOS8 DNF的使用
热门文章
- Effective C++学习第三天
- C++ 继承关系图 01
- html表格中绑定显示xml文档内容的简单实例,JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)...
- Linux系统【一】CPU+MMU+fork函数创建进程
- 用c++模拟实现一个学生成绩管理系统
- select、poll、epoll优缺点
- 系统盘点Android开发者必须掌握的知识点,全网疯传
- 基于ARM Cortex-M0+ 的Bootloader 参考
- java--xml文件读取(SAX)
- Java第二次实验报告——Java面向对象程序设计