8086汇编语言——操作内存中的数据
时间:2022-07-26
本文章向大家介绍8086汇编语言——操作内存中的数据,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
;编程计算0000h:0000h内存单元中数据乘以3的结果,结果保存在dx中。
;本次计算的一个字节单元中的数据,它是8位的。所以需要使用8位的寄存器取值。
;这个内存单元中的数据最大可能是255,255×3的结果会超出8位,所以运算的时候,需采用16位寄存器。
;当然,最终结果也要保存在16位寄存器之中。
assume cs:code
code segment
mov ax,0000h
mov ds,ax ;段地址
mov bx,0000h ;偏移地址
mov dx,0 ;初始化dx
mov ah,0 ;ah置为0
mov al,[bx] ;用al取出0000h:0000h单元一个字节的内容
mov cx,3 ;循环3次
s: add dx,ax ;用16位寄存器来进行运算
loop s
mov ax,4c00h
int 21h
code ends
end
计算结果如下图所示:
AX中的数据乘以3刚好得到DX中的数据。60H*3H=120H
;Dos操作系统一般不会使用0:200-0:2ff这段内存空间
;编程,向内存0:200-0:23F依次传送数据0-63
;8086的地址组成方式导致实际物理地址可以由不同的段地址和偏移地址构成。
;所以我们处理上述地址为"20h:0-20h:3fh",它和0:200-0:23F描述的是相同的地址
assume cs:code
code segment
mov ax,20h
mov ds,ax ;段地址
mov ax,0 ;初始化ax
mov bx,0h ;偏移地址
mov cx,64 ;循环64次
s: mov [bx],ax ;给内存单元赋值
inc ax
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
写入数据结果如下:
;这是在上面的程序的基础上做了一个要求,这个要求是程序只能有9条指令。
;这9条指令还需要包括mov ax,4c00h和int 21h
;编程,向内存0:200-0:23F依次传送数据0-63,只能使用9条指令。
;经过观察可以得出,ax和bx的变化是同步的,所以可以不使用ax。减少2条指令以后
assume cs:code
code segment
mov ax,20h
mov ds,ax
mov bx,0h
mov cx,64
s: mov [bx],bx
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
- Java基础-25(02)图形用户界面编程GUI
- 每周算法练习——最近对问题
- Java基础-25(03)图形用户界面编程GUI
- 数据结构和算法——用动态规划求解最短路径问题
- 备库报警邮件的分析案例(一) (r7笔记第14天)
- 数据结构和算法——动态规划
- Java基础-25(05)图形用户界面编程GUI
- Java基础-25(06)图形用户界面编程GUI
- 51. Socket服务端和客户端使用TCP协议通讯 | 厚土Go学习笔记
- 备库报警邮件的分析案例(二) (r7笔记第15天)
- Gotorch - 多机定时任务管理系统
- 备库报警邮件的分析案例(三)(r7笔记第16天)
- 简单易学的机器学习算法——神经网络之BP神经网络
- 24(02)多线程锁,线程通讯,线程组,线程池,多线程三种方式,匿名内部类,定时器,设计模式,单例模式,Runtime
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SharedPreferences VS MMKV
- 第009课 gcc和arm-linux-gcc和Makefile
- Go 每日一库之 quicktemplate
- 第010课 掌握Jz2440_ARM芯片时钟体系
- 第011课 Jz2400串口(UART)的使用
- 面试官看完我手写的单例直接惊呆了!
- 安利几个JS开发小技巧
- 深入理解Pod(一)
- [902]python list排序
- 第012课 内存控制器与SDRAM
- 一篇文章教给你Bypass学习基础
- 第013课 S3c2440代码重定位详解
- [901]sqlite数据库的导出与导入
- 【React】730- 从 loading 的 9 种写法谈 React 业务开发
- 第014课 Jz2400_ARM异常与中断体系详解