汇编
文章平均质量分 70
Anita-Sun
一只热衷于分享前端知识的奶牛猫~ ️
展开
-
汇编考试大题总结
! 栈的定义STACK SEGMENT STACK DB 100 DUP(0)STACK ENDS! 变量的初始化DATA SEGMENT X DW 28H Y DW ?,? ;在这里,一个?是一个字 Z DW ? S_OUT DB 0DH,0AH,'CONVERT RESULT' NUM DB 11101010B,4,7FH ;可以NUM,NUM[1],NUM[2]来取 BUFFER DB 2,-5,12,-34,10 COUNT EQU $ - BUFFER ;原创 2021-05-20 21:46:50 · 316 阅读 · 0 评论 -
汇编中CPU详解
计算机的组成计算机中的总线物理上:一根根导线的集合逻辑上划分为:地址总线 数据总线 控制总线机器码的不同翻译CPUCPU的组成运算器进行信息处理寄存器进行信息存储控制器协调各种器件进行工作内部总线实现CPU内部各个期间之间的联系物理地址CPU访问内存单元时要给出内存单元的地址所有的内存单元构成的存储空间是一个一维的线性空间每一个内存空间在这个空间中都有唯一的地址,这个唯一的地址称为物理地址因为8086有20位地址总线,寻址能力为1M8086是16为结构的CP原创 2021-05-12 21:20:44 · 376 阅读 · 0 评论 -
汇编中寄存器详解
"字"在寄存器中的存储8086是16位CPU,8086的字长为16bit一个字可以存在一个16位寄存器中字的高位字节存在这个寄存器的高8位寄存器字的低位字节存在这个寄存器的低8位寄存器通用寄存器AX 累加器BX基址寄存器可以用来储存偏移地址CX计数寄存器存放循环次数DX数据寄存器数据的存储十六位寄存器存储十六位的数据最大值:2的16次方 - 1先把要储存的数据转化成十六进制,再根据十六进制和二进制之间的转换关系转换成二进制储存到寄存器中20000D-- 4E20H.原创 2021-05-12 21:19:41 · 827 阅读 · 0 评论 -
汇编中内存详解
内存CPU地址总线宽度为N,寻址空间为2的N次方B8086CPU的地址总线宽度为20,寻址空间为1MB,内存地址空间为1MB内存分为RAM(随机存储器)和ROM(只读存储器)8086PC机内存地址空间的分配方案内存中的数据是一般数据,还是指令内存当中字的存储如果是在寄存器中:高8位放高字节,低8位放低字节在内存和寄存器之间传送字型数据时,高地址单元和高8位寄存器、低地址单元和低8位寄存器相对应如果是在内存中:低位字节放在低地址单元,高位字节放在高地址单元4E20H一个字节原创 2021-05-12 21:19:00 · 1234 阅读 · 0 评论 -
汇编指令
基本概念[...] 表示一个内存单元mov ax, [0] 操作单位是字mov al, [0] 操作单位是字节()为了学习的方便表示一个内存单元或寄存器中的内容(ax) = 0010Hmov ax, [2] 描述为 (ax)=((ds) * 16 + 2)idata表示常量mov ax,[idata]代表 mov ax, [1] mov ax,[2]…在汇编源程序中,数据不能以字母开头,要在ffff前面加0mov ax, 0ffffh字节型数据的范围为 0~255字型数据的范围为原创 2021-05-12 19:44:42 · 444 阅读 · 0 评论 -
汇编语言的模块化程序设计
用寄存器来储存参数和结果是最常使用的方法计算data段中第一组数据的3次方,结果保存在后面一组的dword单元中assume cs:codedata segment dw 1,2,3,4,5,6,7,8 dd 0,0,0,0,0,0,0,0data endscode segmentstart: mov ax,data mov ds,ax mov si,0 mov di,16 mov cx,8 s: mov bx,[si] call cube原创 2021-05-12 15:36:10 · 329 阅读 · 0 评论 -
汇编语言—流程转移和子程序
综述一般情况下指令是顺序地逐条执行的,而在实际中,常需要改变程序的执行流程可以修改IP,或同时修改CS和IP的指令offset 指令获取标号的偏移地址offset 标号例:assume cs:codesegcodeseg segmentstart: mov ax,offset start ;相当于mov ax,0 s: mov ax,offset s ;相当于mov ax,3codeseg endsend startjmp 无条件转移原创 2021-05-12 14:28:39 · 363 阅读 · 0 评论 -
汇编—内存寻址方式
[bx + idata]方式寻址类似于数组同时将第一个字符串转化为大写,第二个字符串转化为小写assume cs:codesg,ds:datasgdatasg segment db 'BaSiC' db 'MinIX'datasg endscodesg segmentstart: mov ax,datasg mov ds,ax ;设置数据段寄存器 mov bx,0 ;设置基准寄存器 mov cx,5 ;设原创 2021-05-12 00:33:44 · 562 阅读 · 1 评论 -
汇编语言代码书写格式指南
在程序的段中存放数据在程序的段中【数据段、代码段、栈段】存放数据,运行时由操作系统分配空间。如果在程序中直接书写数据,是会有危险的将内存 ffff:0 ~ ffff:b 中的数据拷贝到 20:0~20:b单元中; 使用附加段寄存器assume cs:codecode segment mov ax,0ffffh ;累加器 mov ds,ax ;数据段寄存器 mov ax,0020h ;累加器 mov es,ax ;附加数据段寄存器 mov bx,0 ;基址寄存器原创 2021-05-11 13:16:40 · 3741 阅读 · 0 评论 -
汇编中DOSBox的使用
基本使用新建文件夹MyASM_Code将MASM文件夹中的内容复制进去书写的汇编指令文件以.asm结尾挂载过程编译过程masm 文件名.asm 【一直按回车】之后会出现一个文件名.OBJlink 文件名.asm【会出现exe的可执行文件 也是一直按回车】不需要一直按回车可以执行 link 文件名:执行:直接输入文件名testDebug启动debugr查看寄存器内容r 寄存器名改变指定寄存器内容d列出预设地址内存处的128个字节的内容d 段地址:偏原创 2021-05-10 17:51:29 · 1111 阅读 · 0 评论