asm
超大板栗
这个作者很懒,什么都没留下…
展开
-
8086汇编语言 - 检测点1.1
大一上学期,学校开Java语言一课,等学习完之后,8086汇编忘得差不多了,所以在本学期结束的时候准备重新复习一下,以备寒假备战32位汇编语言之用,特用博客以记之,便回望和他人学习之用。原创 2016-12-26 17:45:30 · 417 阅读 · 0 评论 -
检测点10.2
检测点10.2下面的程序执行后,ax中的数值为多少?内存地址 机器码 汇编指令 执行后情况1000:0 b8 00 00 mov ax,0 ax=0 ip指向1000:31000:3 e8 01 00 call s ip+=4;push 61000:6 40 inc ax原创 2017-01-12 18:24:43 · 1387 阅读 · 0 评论 -
检测点10.3
检测点10.3下面的程序执行后,ax中的数值为多少? 内存地址 机器码 汇编指令 执行后情况1000:0 b8 00 00 mov ax,0 ax=0,ip指向1000:31000:3 9a 09 00 00 10 call far ptr s push cs,pu原创 2017-01-12 18:28:00 · 996 阅读 · 0 评论 -
检测点10.1
检测点10.1 补全程序,实现从内存1000:0000处开始执行指令。assume cs:codestack segment db 16 dup (0)stack endscode segmentstart: mov ax,stack mov ss,ax mov sp,16 mov ax, 1000h pus原创 2017-01-12 18:21:50 · 445 阅读 · 0 评论 -
检测点10.4
检测点10.4下面的程序执行后,ax中的数值为多少?内存地址 机器码 汇编指令 执行后情况1000:0 b8 06 00 mov ax,6 ax=6,ip指向1000:31000:3 ff d0 call ax pop ip,ip指向1000:61000:5 40原创 2017-01-12 18:33:28 · 1550 阅读 · 1 评论 -
检测点10.5
检测点10.5(1)下面的程序执行后,ax中的数值为多少?assume cs:codestack segment dw 8 dup (0)stack endscode segmentstart: mov ax,stack mov ss,ax mov sp,16 mov ds,ax mov ax,0原创 2017-01-12 19:46:47 · 882 阅读 · 0 评论 -
检测点11.4
检测点11.4 下面指令执行后,(ax)= 45h mov ax,0 push ax popf mov ax,0fff0h add ax,0010h pushf pop ax and al,11000101B and ah,00001000B 知识点:1.在进行add 等指令对相关标志寄存器的影响。2.区分溢出和进位的区别。 当原创 2017-02-12 22:42:01 · 1014 阅读 · 0 评论 -
检测点12.1
fza原创 2017-02-12 22:56:59 · 420 阅读 · 0 评论 -
课程设计一
放假后,距家过远,到家后整顿几天,不敢怠慢,继续复习8086ASM。assume cs:codesg,ds:datasg,es:tablesgtablesg segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','原创 2017-01-22 17:55:26 · 328 阅读 · 0 评论 -
检测点3.1
知识点:1.字在内存中存储时,要用两个地址连续的内存单元来存放,字的低位字节存放在低地址单元中,高位字节存放在高地址单元中。2.用mov 指令访问内存单元,可以在mov 指令中给出单元的偏移地址和基地址。3.[address]表示一个偏移地址为address的内存单元。4.mov add sub 是具有两个操作对象的指令。jmp是具有一个操作对象的指令。检测点3.1:(原创 2017-01-01 14:43:21 · 1109 阅读 · 2 评论 -
检测点2.3
知识点:CS存放指令的段地址,IP存放指令的偏移地址jmp 段地址:偏移地址 修改CS 和 IPjmp 某一合法寄存器 修改IP下面的3条指令执行后,CPU几次修改IP?都是在什么时候?最后IP中的值是多少?mov ax,bxsub ax,axjmp ax4次修改IP,在指令进入指令缓冲器后执行最后IP中的值是0原创 2017-01-01 13:03:41 · 547 阅读 · 0 评论 -
实验9
assume cs:codesg,ds:datasgdatasg segment db 'welcome to masm!'datasg endscodesg segmentstart: mov ax,datasg mov ds,ax mov ax,0b800h mov es,ax mov bx,728h mov si,0 mov c原创 2017-01-10 20:44:22 · 414 阅读 · 0 评论 -
检测点2.1
检测点2.1原创 2016-12-27 18:53:25 · 405 阅读 · 0 评论 -
检测点2.2
检测点2.2原创 2016-12-27 19:30:06 · 457 阅读 · 0 评论 -
检测点3.2
知识点:1.8086CPU入栈和出栈操作都是以字为单位进行的。2.任意时刻,SS:SP指向栈顶元素。3.push、pop本质上就是一种内存传送指令,可以在寄存器和内存之间传递数据。4.push指令的执行步骤:先 sp=sp-2 然后 向ss:sp指向的字单元中传送数据5.pop指令的执行步骤:先从SS:SP指向的字单元中读取数据,然后SP=SP+26.一个栈的最大容量为64KB原创 2017-01-05 18:14:44 · 598 阅读 · 0 评论 -
检测点6.1
知识点:1.用于显式地指明内存单元的段地址的"ds:" "cs:" "ss:" "es:" 在汇编语言中称为段前缀2.Dos方式下,一般情况,0:200 - 0:2ff空间中没有系统或其他程序的数据或代码。检测点:(1)下面的程序实现依次用内存0:0 - 0:15单元中的内容改写程序中的数据,完成程序:assume cs:codesgcodesg segmentdw 012原创 2017-01-06 14:58:44 · 1573 阅读 · 1 评论 -
实验7 寻址方式在结构化数据访问中的应用
PS:呼~ :搞了1个多小时。assume cs:codesg,ds:datasg,es:tablesgdatasg segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991',原创 2017-01-09 18:33:31 · 1842 阅读 · 0 评论 -
检测点9.1
PS:终于放假了,有时间啃书了。按照计划,现在快点把8086asm复习一下。加油,加油!!!(1) 程序如下。assume cs:codedata segment dw 2 dup (0)data endscode segment start: mov ax,dtat mov ds,ax mov bx,0原创 2017-01-09 19:25:22 · 983 阅读 · 0 评论 -
检测点9.2
PS: = =放寒假,学校宿舍要封楼不让待,无奈票买晚了,只有去宾馆凑合几晚。检测点9.2 补全编程,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。assume cs:codecode segment start: mov ax,2000h mov ds,ax mov bx,0原创 2017-01-10 19:27:31 · 743 阅读 · 0 评论 -
检测点9.3
检测点9.3 补全编程,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。assume cs:code code segment start: mov ax,2000h mov ds,ax mov bx,0 s:mov cl,[bx] mov ch,0原创 2017-01-10 19:30:36 · 416 阅读 · 0 评论 -
检测点11.1
写出下面每条指令执行后,ZF、PF、SF、等标志位的值。 sub al,al al=0h ZF=1 PF=1 SF=0 mov al,1 al=1h ZF=1 PF=1 SF=0 push ax ax=1h ZF=1 PF=1原创 2017-01-22 18:53:58 · 827 阅读 · 0 评论