
汇编语言(王爽)自学笔记
文章平均质量分 52
自学汇编语言时的想法与笔记
shaco_
个人比较忙,且不太看博客,博客记录了自己的学习记录和总结,供参考学习。静下心来,以及思考动手,我们都可以的。还有不接单子。
展开
-
汇编语言程序设计项目完整代码及详细解析
汇编语言程序设计项目完整代码及详细解析建议先自己思考问题的答案,不懂则返回看书原创 2020-04-26 16:18:18 · 13120 阅读 · 0 评论 -
汇编语言课程设计2完整代码及详细解析、动态显示时间
汇编语言课程设计2完整代码及详细解析建议先自己思考问题的答案,不懂则返回看书此代码在DOSBox下的运行结果截图:原创 2020-04-22 11:22:43 · 2758 阅读 · 5 评论 -
汇编语言第十七章字符串的输入完整代码
汇编语言字符串的输入完整代码建议先自己思考问题的答案,不懂则返回看书代码书上都有,仅为课设2做准备assume cs:codedata segment db 128 dup (0)data endscode segmentstart: mov ax,data mov ds,ax mov si,0 mov dh,0 mov dl,0 call getstr mov a...原创 2020-04-22 11:19:22 · 604 阅读 · 0 评论 -
汇编语言实验17完整代码及详细解析
汇编语言实验17完整代码及详细解析建议先自己思考问题的答案,不懂则返回看书此代码在DOSBox下的运行结果截图:原创 2020-04-22 10:17:31 · 1187 阅读 · 1 评论 -
汇编语言检测点17.1完整代码及详细解析
汇编语言检测点17.1完整代码及详细解析建议先自己思考问题的答案,不懂则返回看书此代码在DOSBox下的运行结果截图:原创 2020-04-22 09:48:54 · 1708 阅读 · 5 评论 -
汇编语言实验16完整代码及详细解析
汇编语言实验16完整代码及详细解析建议先自己思考问题的答案,不懂则返回看书此代码在DOSBox下的运行结果截图:原创 2020-04-22 09:32:22 · 3106 阅读 · 9 评论 -
汇编语言第十六章sin(x)容错性程序完整代码及详细解析
汇编语言第十六章 sinx 容错性程序 完整代码及详细解析建议先自己思考问题的答案,不懂则返回看书解析:容错性:即对错误的输入有处理能力。当用户输入错误的输入时,程序要怎么处理。 对每一个与用户有交互性的程序,都必须要有容错性。因为于我们而言合法的数据只有 0,30,60,90,120,150,180.所以将输入的数据与这7个合法数据一一比较,就可得知是不是有效数据代码如下:assume...原创 2020-04-22 09:12:48 · 566 阅读 · 0 评论 -
汇编语言检测点16.2完整代码及详细解析
汇编语言检测点16.2完整代码及详细解析建议先自己思考问题的答案,不懂则返回看书此代码在DOSBox下的运行结果截图:原创 2020-04-22 08:59:33 · 1411 阅读 · 0 评论 -
汇编语言检测点16.1完整代码及详细解析
汇编语言检测点16.1完整代码及详细解析建议先自己思考问题的答案,不懂则返回看书此代码在DOSBox下的运行结果截图:原创 2020-04-22 08:51:51 · 2591 阅读 · 0 评论 -
汇编语言实验15完整代码及详细解析
汇编语言实验15完整代码及详细解析建议先自己思考问题的答案,不懂则返回看书安装一个新的 int 9 中断例程,在DOS下,按下’A’键后,除非不再松开,如果松开,就会显示满屏幕的’A’,其他键的功能照常。assume cs:codestack segment db 128 dup (0)stack endscode segmentstart: mov ax,stack mo...原创 2020-04-21 16:59:50 · 1863 阅读 · 1 评论 -
汇编语言检测点15.1
汇编语言检测点15.1建议先自己思考问题的答案,不懂则返回看书1、精简代码为:pushfcall dword ptr ds:[0]2、使用cli和sti,成对使用cli ; TF = 0 不响应中断push ds:[0]pop es:[9*4]push ds:[2]pop es:[9*4+2]sti ; TF = 1 可以响应中断...原创 2020-04-21 16:48:09 · 1387 阅读 · 2 评论 -
汇编语言实验14动态显示时间
汇编语言实验14动态显示时间建议先自己思考问题的答案,不懂则返回看书编程:以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。死循环法:assume cs:codedata segment db 9,8,7,4,2,0data endscode segmentstart: mov bx,data mov ds,bx mov si,0 mov bx,0b800h...原创 2020-04-21 16:39:41 · 2839 阅读 · 0 评论 -
汇编语言检测点14.2详细解析
汇编语言检测点14.2详细解析建议先自己思考问题的答案,不懂则返回看书编程,用加法和移位指令计算(ax) = (ax) * 10提示:(ax)* 10 = (ax)* 2 + (ax)* 8乘以2即左移一位,乘以8即左移三位assume cs:codecode segmentstart: mov ax,10 mov bx,ax shl ax,1 mov cl,3 shl b...原创 2020-04-21 16:25:25 · 1365 阅读 · 0 评论 -
汇编语言检测点14.1详细解析
汇编语言检测点14.1详细解析建议先自己思考问题的答案,不懂则返回看书(1)编程,读取CMOS RAM的 2号单元的内容assume cs:codecode segmentstart: mov al,2 out 70H,al ;将2送入端口70H in al,71H ;从端口71H读出2号单元的内容 m...原创 2020-04-21 16:11:55 · 2147 阅读 · 1 评论 -
汇编语言实验13详细解析
汇编语言实验13详细解析建议先自己思考问题的答案,不懂则返回看书(1)、编写并安装int 7ch中断例程,功能为显示一个用0结尾的字符串,中断例程安装在0:200处。安装程序:DE13_1an.asmassume cs:codecode segmentstart: ;安装 mov ax,cs mov ds,ax mov si,offset display mov ax,0 ...原创 2020-04-21 16:05:50 · 2898 阅读 · 1 评论 -
汇编语言检测点13.2详细解析
汇编语言检测点13.2详细解析建议先自己思考问题的答案,不懂则返回看书判断下面说法的正误:(1) 我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初始化程序。分析: 错误! FFFF:0处的指令是一条跳转指令,只读的,不可能改变。(2)int 19h中断例程,可以由DOS提供。分析:错误! 中断例程19h是引导DOS开始启动的程序,所以不是DOS提供的...原创 2020-04-21 15:42:59 · 2331 阅读 · 0 评论 -
汇编语言检测点13.1详细解析
汇编语言检测点13.1详细解析建议先自己思考问题的答案,不懂则返回看书7ch中断例程如下:lp: push bp mov bp,sp dec cx jcxz lpret add [bp+2],bxlpret: pop bp iret1、在上面的内容中,用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?...原创 2020-04-21 15:34:20 · 2472 阅读 · 2 评论 -
汇编语言实验12完整代码及详细解析
汇编语言实验12完整代码及考察点建议先自己思考问题的答案,不懂则返回看书很简单的一个程序,不做额外的分析,看代码就懂了。本章主要是理解中断的过程、原理。assume cs:codecode segmentstart: mov ax,cs mov ds,ax mov si,offset do0 mov ax,0 mov es,ax mov di,200h mov cx,off...原创 2020-04-20 22:31:15 · 2214 阅读 · 2 评论 -
汇编语言检测点12.1答案及解析
汇编语言检测点12.1建议先自己思考问题的答案,不懂则返回看书(1)用debug查看内存,情况如下:0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00解释:一个表项存放一个中断向量,也就是一个中断处理程序的入口地址,这个入口地址包括段地址和偏移地址,一个表项占两个字,高地址存放段地址,低地址存放偏移地址。所以可得 0号:...原创 2020-04-20 22:19:50 · 2894 阅读 · 1 评论 -
汇编语言实验11完整代码及解析
汇编语言实验11完整代码及解析建议先自己思考问题的答案,不懂则返回看书考察点: 对cmp 及 je、jne、jb、jnb、ja、jna的熟练使用assume cs: codedata segment db "Beginner's All-purpose2324 Symb34325olic Instruction Code.",0data endscode segmentstart...原创 2020-04-20 22:08:18 · 1638 阅读 · 0 评论 -
汇编语言检测点11.4详细解析
汇编语言检测点11.4建议先自己思考问题的答案,不懂则返回看书下面的程序执行后:(ax)= ?析: pushf 和 popf 是对标志寄存器的操作指令,本质上还是对数据的操作,标志寄存器是16位,与通用寄存器(ax,bx……)不一样的是它是按“位”起作用的,即每一“位”都有它自己的含义,而通用寄存器整体表示一个含义。具体分析:mov ax,0push ax popf ;...原创 2020-04-20 21:55:44 · 2862 阅读 · 8 评论 -
汇编语言检测点11.3
汇编语言检测点11.2及其考点建议先自己思考问题的答案,不懂则返回看书这两道题太简单了,但为了完整的系列,还是写写,没必要分析。【a,b】表示此范围包含a,b (a,b) 表示此范围不包含a,b1、补全下面的程序,F000:0处的32个字节中,大小在【32,128】的数据的个数。mov ax,0f000hmov ds,axmov bx,0mov dx,0mov cx,3...原创 2020-04-20 21:08:47 · 2699 阅读 · 0 评论 -
汇编语言检测点11.2及其考点
汇编语言检测点11.2原创 2020-04-20 20:53:05 · 1766 阅读 · 0 评论 -
汇编语言检测点11.1详细解析
汇编语言检测点11.1详细解析建议先自己思考问题的答案,不懂则返回看书分析:ZF:记录结果是否为零。结果为零,则ZF为1;结果为1,则ZF为0PF:记录结果中二进制形式下1的个数是否为偶数。若1的个数是偶数,则PF=1;若1的个数是奇数,则PF=0SF:记录结果是否为负。若结果为负,则SF=1;若结果非负,则SF=0 注意:若数据当作无符号数计算,则SF的值没有意义,虽然可能会影...原创 2020-04-13 21:56:16 · 3415 阅读 · 11 评论 -
汇编语言课程设计一完整代码及详细解析
汇编语言课程设计一完整代码及详细解析建议先自己思考问题的答案,不懂则返回看书第二列需要用除法的溢出公式计算,第三列需要32/16 位的除法,第四列需要16/8位的除法。详细解析看代码注释。assume cs:codedata segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984',...原创 2020-04-12 20:53:35 · 4945 阅读 · 0 评论 -
汇编语言实验十完整代码和详细解析
汇编语言实验十完整代码建议先自己思考问题的答案,不懂则返回看书扩展建议: 【非必要内容,个人经验感悟】从这儿开始,我们正式接触子程序,主要是通过 call和 ret 来实现的。这样就涉及到了入口参数问题,提个写代码风格习惯的建议,只写必要的入口参数,尽量简化参数,为了更好的移植性。例如写一个清屏函数,它的功能是清除屏幕上的所有字符,就是把相应内存的数据都写为零,它不需要任何参数,随时随地,...原创 2020-04-12 20:04:26 · 6227 阅读 · 4 评论 -
汇编语言检测点10.5
汇编语言检测点10.5建议先自己思考问题的答案,不懂则返回看书下面的程序执行后,AX的值为 3解析: 关键是对call word ptr ds:[0EH]的执行分析执行 call word ptr ds:[0EH] 的过程:CPU取该指令 : (call word ptr ds:[0EH])ip自增,指向了下一条指令 (inc ax)开始执行 call word ptr ds:[0...原创 2020-04-12 16:32:37 · 5220 阅读 · 6 评论 -
汇编语言检测点10.4
汇编语言检测点10.4建议先自己思考问题的答案,不懂则返回看书这儿用到了bp,除了之前这样用过bp外 [bx+bp] ,还会在栈中用到。比如说,堆栈中压入了很多数据或者地址,你肯定想通过SP来访问这些数据或者地址,但SP是要指向栈顶的,是不能随便乱改的,这时候你就需要使用BP,把SP的值传递给BP,通过BP来寻找堆栈里数据或者地址。1000:0 mov ax,61000:2 ...原创 2020-04-12 16:21:13 · 2988 阅读 · 3 评论 -
汇编语言检测点10.3
汇编语言检测点10.3建议先自己思考问题的答案,不懂则返回看书解析考点: call 时存入的CS,IP是下一条指令的下面程序执行后,ax中的数值为多少?内存地址 汇编指令1000:0 mov ax,01000:3 call far ptr s ;将1000:0008存入栈中1000:8 inc ax1000:9 ...原创 2020-04-12 16:09:41 · 3159 阅读 · 2 评论 -
汇编语言检测点10.2
汇编语言检测点10.2建议先自己思考问题的答案,不懂则返回看书下面的程序执行后,ax中的数值是6,要搞清楚如果是跳转指令,什么时候修改IP的值。学过计算机组成原理的肯定知道,指令读取后,IP值自动加1(这儿的1是指下一条指令,不是指下一个字节),指向下一条指令,如果经CU分析后是跳转指令,则再修改IP的值。这两者原理是一样1000:0 mov ax,0 ;读取此条指令后IP=3 ,执行...原创 2020-04-12 15:57:39 · 3488 阅读 · 5 评论 -
汇编语言检测点10.1
汇编语言检测点10.1建议先自己思考问题的答案,不懂则返回看书补全程序,实现从内存1000:0000处开始执行指令解析: 即要设置CS 、IP的值为1000 、0000 。 因为是 retf,所以要先CS入栈,再IP入栈assume cs:codestack segment db 16 dup (0)stack endscode segmentstart: mov ax,st...原创 2020-04-12 15:45:04 · 807 阅读 · 0 评论 -
汇编语言实验九完整代码
汇编语言实验九完整代码建议先自己思考问题的答案,不懂则返回看书显示绿色、红底绿色、白底蓝色的welcome to masm!解析: 在显存中,一个dw 表示一个字符,dw的高字节表示颜色,低字节表示字符的ASCII。eg. AH=0000 0010 AL= ‘a’,则在屏幕上显示为绿色的’a’ ,因为AH=02h,表示颜色是绿色,所以只是对颜色数据进行改动。assume cs:code...原创 2020-04-12 15:40:53 · 4044 阅读 · 1 评论 -
汇编语言实验八核心考点
汇编语言实验八完整代码建议先自己思考问题的答案,不懂则返回看书分析程序,在运行前思考:这个程序是否能够正确返回?运行之后再思考:为什么是这种结果?解析: 核心考点, CPU在执行jmp指令的时候并不需要转移的目的地址,而包含的是转移的位移。这个位移,是编译器根据汇编指令中的“标号”计算出来的。在DOS下单步执行,仔细观察每一条jmp指令的机器码,它表示的是相对于当前指令的位移,不是标号的地...原创 2020-04-12 15:27:13 · 274 阅读 · 0 评论 -
汇编语言检测点9.3
汇编语言检测点9.3建议先自己思考问题的答案,不懂则返回看书解析:前面刚学过jcxz,但此处并不适合用jcxz,考察的是loop,jcxz是当cx=0时,执行jcxz。但loop只有当 cx-1> 0时才会继续循环,因此如果传入cl的值为0,则cl与ch组合为0,需加上1才可以满足cx-1=0退出循环。jcxz与loop的判定条件正好相反,要多加留意。assume cs:code...原创 2020-04-12 15:19:01 · 834 阅读 · 0 评论 -
汇编语言检测点9.2
汇编语言检测点9.2建议先自己思考问题的答案,不懂则返回看书解析: jcxz只有当cx=0时才有作用,所以当找到第一个值为0的字节,可将ds:bx中的值传入cl中,与ch=0组成cx来判断是否为0.assume cs:codecode segmentstart: mov ax,2000H mov ds,ax mov bx,0 s: mov cl,ds...原创 2020-04-12 15:13:40 · 2699 阅读 · 6 评论 -
汇编语言检测点9.1
汇编语言检测点9.1建议先自己思考问题的答案,不懂则返回看书(1)、若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应该定义哪些数据?解析:若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令,则只要保证data段中的1号和2号字节单元是零就行,所以简单粗暴点,直接将data段16个字节设为零assume cs:codedata segment ...原创 2020-04-12 15:10:07 · 3194 阅读 · 4 评论 -
汇编语言实验七完整代码
汇编语言实验七完整代码建议先自己思考问题的答案,不懂则返回看书这个程序是目前位置最复杂的程序,这个程序一定要自己动手写,之后还会再用到这个程序的。它主要考察的是寻址方式、对大量数据的处理,需要自己的耐心严谨。主要思路: 先计算第四列(人均收入)的值,并存在table中的相应位置,然后再把其余数据移到table中的相应位置assume cs:codedata segment db '19...原创 2020-04-10 21:31:31 · 7159 阅读 · 3 评论 -
汇编语言问题7.9&实验六完整代码
汇编语言问题7.9&实验六完整代码建议先自己思考问题的答案,不懂则返回看书问题7.9&实验六assume cs:code,ds:data,ss:stackstack segment dw 0,0,0,0,0,0,0,0stack endsdata segment db '1. display ' db '2. brows ' db '3...原创 2020-04-10 21:08:41 · 1683 阅读 · 0 评论 -
汇编语言实验五完整代码
汇编语言实验五完整代码建议先自己思考问题的答案,不懂则返回看书原创 2020-04-10 20:53:10 · 1214 阅读 · 1 评论 -
汇编语言检测点6.1
汇编语言检测点6.1建议先自己思考问题的答案,不懂则返回看书下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据:原创 2020-04-08 11:18:34 · 2066 阅读 · 6 评论