
学汇编,记笔记
文章平均质量分 75
# 汇编基础知识
Ho1aAs
Tutte le strada portano a roma.
展开
-
学汇编,记笔记(实验笔记)_《汇编语言(第4版)》王爽著——实验14_访问CMOS RAM
前言学习教材:《汇编语言(第4版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言以“年/月/日 时:分:秒显示当前日期时间”实验前别忘了复习笔记以“年/月/日 时:分:秒显示当前日期时间”思路:循环从特定端口获取字符串,拼接后再显示assume cs:code,ds:datadata segment db 9,8,7,4,2,0 ;端口地址 db '00/00/00_00:00:00' ;日期格式拼接data endscode segment原创 2021-03-12 13:30:09 · 242 阅读 · 0 评论 -
学汇编,记笔记(实验笔记)_《汇编语言(第4版)》王爽著——实验7_寻址方式在结构化数据访问中的应用
前言学习教材:《汇编语言(第3版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言编程,将 data 段中的数据按如下格式写入到 table 段中,并计算 21 年中的人均收入(取整),结果也按照下面的格式保存在 table 段中。分析答案实验前别忘了复习笔记编程,将 data 段中的数据按如下格式写入到 table 段中,并计算 21 年中的人均收入(取整),结果也按照下面的格式保存在 table 段中。data段:assume cs:codesgdata原创 2021-01-18 20:35:54 · 687 阅读 · 0 评论 -
学汇编,记笔记(实验笔记)_《汇编语言(第4版)》王爽著——实验12_编写0号中断的处理程序
前言学习教材:《汇编语言(第4版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言编写0号中断的处理程序,使得除法溢出显示字符串实验前别忘了复习笔记编写0号中断的处理程序,使得除法溢出显示字符串assume cs:codecode segmentstart: ;以下是安装程序 mov ax,cs mov ds,ax mov si,offset do0 ;中断程序在下方do0 mov ax,0 mov es,ax mov di,200h ;原创 2021-03-09 20:16:30 · 382 阅读 · 0 评论 -
学汇编,记笔记(实验笔记)_《汇编语言(第4版)》王爽著——实验6_实践课程中的程序(问题7.9)
前言学习教材:《汇编语言(第3版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言编程,完成问题7.9中的程序(编程,将data段中每个单词的前4个字母改为大写字母)答案实验前别忘了复习笔记编程,完成问题7.9中的程序(编程,将data段中每个单词的前4个字母改为大写字母)答案assume cs:codesg,ss:stacksg,ds:datasgstacksg segment dw 0,0,0,0,0,0,0,0stacksg endsdata原创 2021-01-16 16:31:47 · 619 阅读 · 0 评论 -
学汇编,记笔记(实验笔记)_《汇编语言(第4版)》王爽著——实验9_根据材料编程
前言学习教材:《汇编语言(第4版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串‘welcome to masm!’分析如何居中答案示意图实验前别忘了复习笔记编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串‘welcome to masm!’编程所需要的知识在书中已经给出分析定义数据段,存储字符串,字符串长度恰好是16B;以及三行的颜色值,三行的颜色值分别是00000010b、0010010原创 2021-01-23 15:48:11 · 702 阅读 · 0 评论 -
学汇编,记笔记(实验笔记)_《汇编语言(第4版)》王爽著——实验5_编写调试具有多个段的程序
前言学习教材:《汇编语言(第3版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言(1)将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题。(1)答案(2)将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题。(2)答案(3)将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题。(3)答案(4)如果将(1)、(2)、(3)题中的最后一条伪指令 “end start"改为“end" (也就是说不指明程序的入口),则那个程序仍然可以正确执行?请说明原原创 2021-01-13 16:19:56 · 577 阅读 · 1 评论 -
学汇编,记笔记(实验笔记)_《汇编语言(第4版)》王爽著——实验10_编写子程序之1、2
前言学习教材:《汇编语言(第4版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言1.显示字符串2.解决除法溢出问题实验前别忘了复习笔记1.显示字符串assume cs:code,ds:datadata segment db 'HelloWorld!',0 data endscode segmentstart: mov dh,8 ;行号 mov dl,3 ;列号 mov cl,2 ;绿色 mov ax,data mov ds,ax原创 2021-02-03 22:36:49 · 606 阅读 · 0 评论 -
学汇编,记笔记(实验笔记)_《汇编语言(第4版)》王爽著——实验8_分析一个奇怪的程序
前言学习教材:《汇编语言(第3版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言分析下面的程序,在运行前思考:这个程序可以正确返回吗?分析答案实验前别忘了复习笔记分析下面的程序,在运行前思考:这个程序可以正确返回吗?运行后再思考:为什么是这种结果?assume cs:codesgcodesg segment mov ax,4c00h int 21hstart: mov ax,0 s: nop n原创 2021-01-19 16:43:25 · 586 阅读 · 0 评论 -
学汇编,记笔记(实验笔记)_《汇编语言(第4版)》王爽著——实验11_编写子程序
前言学习教材:《汇编语言(第4版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言编写一个子程序将以0结尾的字符串中的小写字母转变成大写字母实验前别忘了复习笔记编写一个子程序将以0结尾的字符串中的小写字母转变成大写字母assume cs:code,ds:datadata segment db "Beginner's All-purpose Symbolic Instruction Code.",0data endscode segmentbeg原创 2021-03-08 16:47:13 · 290 阅读 · 0 评论 -
学汇编,记笔记(十五)_《汇编语言(第4版)》王爽著——直接定址表
前言学习教材:《汇编语言(第4版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录一、描述单元长度的标号检测点16.1二、在其他段使用标号Ⅰ、标号嵌套——字型Ⅱ、标号嵌套——双字型三、直接定址表四、程序入口地址的直接定址表一、描述单元长度的标号示例代码片段:data segment a db 1,2,3,4,5,6,7,8 b dw 0data ends此时:a代表了之后的第一个单元(cs:[0]),b代表了之后的第一个单元(cs:[8])对于b可以执行以下原创 2021-03-12 21:33:59 · 277 阅读 · 0 评论 -
学汇编,记笔记(十四)_《汇编语言(第4版)》王爽著——外中断
前言学习教材:《汇编语言(第4版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著CPU通过端口与芯片(外部设备)交换数据文章目录前言一、外中断信息Ⅰ、可屏蔽外中断手动置IFⅡ、不可屏蔽外中断二、键盘处理——可屏蔽外中断检测点15.1(1)精简int 9中断例程(2)排除问题后记一、外中断信息前几章的内中断来源于CPU内部,而此处外中断来源于外部设备,中断码通过总线传入CPU外中断分为两类:Ⅰ、可屏蔽外中断CPU可以不响应的外中断,如果IF=1,执行完当前指令CPU响应,原创 2021-03-12 20:46:03 · 233 阅读 · 0 评论 -
学汇编,记笔记(十三)_《汇编语言(第4版)》王爽著——端口_移位指令
前言学习教材:《汇编语言(第4版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著CPU通过端口与芯片交换数据,对端口进行统一编址存入端口地址空间CPU可以直接读取:内部寄存器、内存单元、端口文章目录前言一、端口读写二、CMOS RAM芯片检测点14.1(1)编程读取CMOS RAM的2号单元(2)编程向2号单元写入0后记一、端口读写端口读指令:in端口写指令:out格式:in al(ax),port、out port,al(ax)当端口是8位时(0~255):端口地址原创 2021-03-11 14:12:22 · 362 阅读 · 0 评论 -
学汇编,记笔记(十二)_《汇编语言(第4版)》王爽著——int指令
前言学习教材:《汇编语言(第4版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言一、int n二、来自BIOS和DOS的中断例程三、BIOS和DOS中断例程的安装检测点13.2(1)可以改变FFFF:0使得CPU不去执行系统检测(2)int 19h中断例程由DOS提供四、DOS中断例程的应用后记一、int nint指令用于引发n号中断,因此:可以在任何程序中调用任何一个中断的处理程序int与call相似,用于调用一段程序int+iret与call+ret相似二原创 2021-03-10 15:41:47 · 354 阅读 · 1 评论 -
学汇编,记笔记(十一)_《汇编语言(第4版)》王爽著——内中断
前言学习教材:《汇编语言(第4版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言一、内中断检测点12.1(1)3号中断处理程序的入口(2)存储N号中断程序入口的内存单元二、中断过程三、中断处理程序和iret指令四、编程处理0号中断Ⅰ、安装程序Ⅱ、显示程序Ⅲ、设置中断向量五、单步中断六、不会响应中断的情况后记一、内中断CPU对当前代码处理完后检测到中断信息就会暂停执行下一行代码,而转入中断程序运行。中断信息到来源为中断源,通常为一些事件。列举以下四种中断信息和类型码原创 2021-03-09 10:56:14 · 328 阅读 · 0 评论 -
学汇编,记笔记(十)_《汇编语言(第4版)》王爽著——标志寄存器_adc和sbb_cmp及比较转移_串传送_pushf和popf
前言学习教材:《汇编语言(第4版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言一、二、后记章末实验11一、二、后记List item原创 2021-03-08 16:27:34 · 466 阅读 · 0 评论 -
学汇编,记笔记(九)_《汇编语言(第4版)》王爽著——call和ret_mul乘法
前言学习教材:《汇编语言(第4版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著call和ret是两个转移指令,只修改IP或同时修改CS和IP文章目录前言一、call和ret的理解——模块化二、ret和retfⅠ、ret的具体操作Ⅱ、retf的具体操作三、callⅠ、转移到标号处——call 标号Ⅱ、转移地址在寄存器中——call reg转移地址在内存中——call X ptr检测点10.5(1) 下面的程序执行后,ax中的数值为多少?(2) 下面的程序执行后,ax和bx中的数值原创 2021-01-27 23:08:38 · 294 阅读 · 0 评论 -
学汇编,记笔记(八)_《汇编语言(第4版)》王爽著——转移指令_jmp、jcxz和loop
前言学习教材:《汇编语言(第3版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著转移指令指能修改IP或同时修改CS、IP的指令。由是否修改CS,前者称为段内转移,后者称为段间转移。其中段内转移又可分为短转移和近转移,前者范围-128~127,后者-32768~32767,正负表示向前或向后移动字节数文章目录前言转移指令一、操作符offset二、无条件转移指令——jmpⅠ、段内短转移——jmp shortⅡ、段内近转移——jmp near ptrⅢ、段间转移——jmp far原创 2021-01-19 16:20:50 · 531 阅读 · 0 评论 -
学汇编,记笔记(七)_《汇编语言(第4版)》王爽著——数据处理的基本问题_寻址_div除法_伪指令dd和dup
前言学习教材:《汇编语言(第3版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著约定reg和sreg符号reg(Register)表示一般寄存器,sreg(Segment Register)表示段寄存器符号描述regax、bx、cx、dx(以及高低两部分)、sp、bp、si、disregds、ss、cs、es数据处理的两个基本问题待处理数据的位置待处理数据的长度CPU在数据处理的过程只关在意以上两个问题,而不在意数据具体值是多少文原创 2021-01-18 16:55:00 · 465 阅读 · 0 评论 -
学汇编,记笔记(六)_《汇编语言(第4版)》王爽著——定位内存地址_存储字符串_大小写转换_循环嵌套_二维数组问题
前言学习教材:《汇编语言(第3版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言一、位运算二、存储字符(串)三、字符(串)的大小写转换Ⅰ、大写转小写Ⅱ、小写转大写四、SI和DI寄存器五、[bx+si+idata]定位内存地址六、尝试循环灵活定位七、二维数组的定位一、位运算汇编支持按位与、按位或运算mov al,00111010b ;以b声明二进制and al,11011101b ;按位与or al,11011101b ;按位或运算需要声明二进制,运算结果原创 2021-01-16 16:21:56 · 417 阅读 · 0 评论 -
学汇编,记笔记(五)_《汇编语言(第4版)》王爽著——程序分段_使用数据和栈_定义汇编程序的入口
前言学习教材:《汇编语言(第3版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著程序获取空间加载程序时候可以预先获取到空间,只需要在源程序中提前声明可以想象成C语言的define 123宏定义文章目录前言程序获取空间一、在代码段中使用数据二、定义程序的入口三、在代码中使用栈四、程序分段后记一、在代码段中使用数据例如:累加1,4,7,9。之前是一个个的加到ax寄存器中,我们现在想使用循环来完成,就可以在程序中定义我们希望处理的数据,当成为可执行文件执行时,它们就会加载到内存原创 2021-01-01 21:46:46 · 730 阅读 · 0 评论 -
学汇编,记笔记(四)_《汇编语言(第4版)》王爽著——[BX]和loop
前言学习教材:《汇编语言(第3版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著约定[bx]符号、(bx)符号、idata符号前面提到,[0]可以表示某段偏移地址为0的那个内存单元,它有自适应功能:mov ax,[0] //表示将字单元[0]和[1]传入axmov al,[0] //表示将字节单元[0]传入al因此,类似于上面的用法:[bx]表示某段偏移地址为bx值的那个内存单元,此时偏移地址存在bx内为了区分且使描述方便,定义(bx)表示bx存储的内容,可以是寄存器(原创 2020-12-30 00:39:09 · 740 阅读 · 0 评论 -
学汇编,记笔记(三)_《汇编语言(第4版)》王爽著——环境搭建及第一个程序
前言学习教材:《汇编语言(第3版)》王爽著此笔记是书中内容+自我总结,方便查阅和复习请支持原著文章目录前言一、环境搭建系统软件二、编写汇编程序三、使用debug跟踪程序的运行-r指令:查看初始化寄存器情况-u指令:查看机器码-t指令:单步执行-q指令:退出debug一、环境搭建系统Windows XP professional with SP2MSDN镜像网使用xunlei等下载ED2K链接软件Masm for Windows 集成实验环境 V5.0Masm for Wi原创 2020-12-27 19:20:15 · 595 阅读 · 2 评论 -
学汇编,记笔记(二)_《汇编语言(第4版)》王爽著——intel8086寄存器的内存访问
学习教材:《汇编语言(第3版)》王爽著文章目录一、内存中字的存储二、内存地址寄存器实验:写出下面的命令执行后内存中的值三、mov、sub、add指令mov支持的操作add、sub支持的操作寄存器的清零四、栈五、栈地址寄存器空栈时六、push、pop指令支持的操作push ax的执行pop ax的执行七、栈顶越界问题实验:编程八、栈段一、内存中字的存储CPU中一个字寄存在一个十六位寄存器中。其中:高八位存放高位字节,低八位存放低位字节字单元由两个连续单元组成,起始地址为N的字单元称为N地址字单元,.原创 2020-12-25 20:50:57 · 424 阅读 · 2 评论 -
学汇编,记笔记(一)_《汇编语言(第4版)》王爽著——intel8086CPU的寄存器
文章目录一、简介二、通用寄存器三、十六进制和二进制四、简单的汇编指令及注意事项实验:最多使用4条指令计算2的4次方五、8086CPU给出物理地址的方法一、简介CPU内的寄存器用于存储信息,在CPU里通过内部总线与其余器件相连接程序员通过对寄存器存储内容的改变可以间接操控CPU的运行intel8086CPU包含14个寄存器,它们有各自的名字:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PWS,它们的共性是都是16位寄存器,可以存放两个字节的数据二、通用寄存器在14原创 2020-12-03 19:47:48 · 697 阅读 · 0 评论