汇编网首页登录博客注册
qq275537308的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  --
  • 『姓名』:
  • 『性别』:男『发送消息
  • 个人说明:汇编——C语言——linux kernel,不管这条路有多长,我会走下去。为了那个逝去的少年的梦,没有什么能阻止我前行,没有!
  • 详细信息『加为好友』
学习动态
最新留言
好友圈
文章收藏
友情链接

[2009-02-04 17:33] 实验9

点击查看原图
assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends

code segment
start: mov ax,data
        mov ds,ax
        mov si,0
        
        mov ah,80 //计算字符串输出的地址,第13行31-47字节
     mov cl,12
        mul cl
        add ax,30
        mov di,ax
        
        mov ax,0b800h //用ES:[di]指向显存
        mov es,ax
        
        mov cx,16
        
        s: mov al,ds:[s...
阅读全文 | 评论次数(1) | 浏览次数(577) | 所属类型(汇编作业)

[2009-01-26 21:29] 实验8

分析结果:
能够正常返回。
主要考察根据位移转移的本质,程序把s2处的jmp short s1拷贝到了s处,其实拷贝到的真实结果是jmp -A,也就是用-A来修改IP,而在S:处IP地址为A,所以S处的指令实际上成了jmp(A-A)= jmp 0000,指向的刚好是 mov ax,4c00h,执行下来程序就正常返回了。...
阅读全文 | 评论次数(1) | 浏览次数(696) | 所属类型(汇编作业)

[2009-01-26 20:10] 检测点9.3

add cx,1
还是利用loop指令先要cx-1的特点。在cx里加1,要是原来的值为0,运行到loop时,会先-1就CX=0,向下执行,由于执行了一条inc bx,所以后面要dec bx得到的才是正确地址
这里不能jcxz,用了跳转到OK时,会dec bx,得到的地址就会差1...
阅读全文 | 评论次数(1) | 浏览次数(683) | 所属类型(汇编作业)

[2009-01-26 20:04] 检测点9.2

S:mov cl,[bx]
  mov ch,0
  jcxz ok
  inc bx
利用jcxz特性,把每个字节的内容放在cx里,如果为0,则跳转到后面用dx记录下bx的值,即地址
由于查找的是字节,所以把CX分成CL\CH装(这点是看了9.3才反应过来的,以前都是用mov cx,[bx],惭愧~)...
阅读全文 | 评论次数(1) | 浏览次数(676) | 所属类型(汇编作业)

[2009-01-26 19:59] 检测点9.1

(1)data里把1号字单元定义为0。
因为start在cs段里为偏移地址0,而后面用JMP WORD PTR

(2)mov [bx],0
    mov [bx+2],cs
jmp dword 用一个双字的高位修改段地址,所以CS放在[bx+2],偏移地址放在低位。
[bx]里我曾用start,编译后成了mov bx,0000,不知何解,请赐教

(3)cs:0006
     ip:00be
还是jmp dword的用法...
阅读全文 | 评论次数(2) | 浏览次数(649) | 所属类型(汇编作业)

[2009-01-23 21:19] 第8章 实验7

assume cs:code,ds:data,ss:stack
data segment
db 21 dup ('1984')//这里我用统一数据代替了^^
dd 21 dup (5000)
dw 21 dup (100)
data ends

stack segment
dw 16 dup (0)
stack ends

table segment
db 21 dup ('year summ ne ?? ')
table ends

code segment
start: mov ax,data
        mov ds,ax
        mov ax,stack
        mov...
阅读全文 | 评论次数(1) | 浏览次数(665) | 所属类型(汇编作业)

[2009-01-12 19:21] 6.1

(1)mov cs:[bx],ax

(2)mov ax,cs
   mov sp,26
   pop cs:[bx]

每次都错1题,都36小时了……

推测大概是段的长度那题错了,我测试过申请过不同大小的空间做了实验。从第四章里看来,程序加载进内存后,每个段段地址不同,但都用0做偏移地址。那么一个段的结尾偏移地址也应该是0,段的大小应该是N+(16-N)这样子,比如DATA段有50字节数据,在内存里占32h,但会分配40h的空间给这段

感觉从这一章开始,很多东西确实要吃的相当透,后面才能继续,不然到了后面举步维艰……...
阅读全文 | 评论次数(2) | 浏览次数(647) | 所属类型(汇编作业)

[2008-11-28 17:40] 再来!

生活的琐事一点一点消磨着意志。停在第六章已经快一个月了,根本没什么多余的时间与精力来学习,还好前几章学的够扎实,回顾一下还都能捡回来,但始终有种自己背弃了自己的感觉...

今天去论坛上看了很多人的帖子,自己很惭愧,但又一次充满了力量与信心。既然害怕失败、害怕挫折,当初为什么要来?!来这里是追求知识的真谛,还是追求“通过监测点”的“成就感”?!写到着这里我也觉得豁然开朗了,呵呵

打算用一个星期时间复习前面的章节,把关键知识点重新掌握,再继续学习。感觉我最大的问题就是连贯和意志力,以后要加强学习的规律性和连贯性,调整好心态,我会回来的,我的快乐也会回来的,加油!...
阅读全文 | 评论次数(2) | 浏览次数(541) | 所属类型(默认类型)

[2008-10-15 14:11] 3.2

(1)
mov bx,2000H
mov ss,bx
mov sp,0010H

(2)
mov bx,1000H
mov ss,bx
mov sp,0000H

把一段空间当做栈段使用,完全是我们编程时的一种安排,CPU并不知道这种安排,除非我们把SS:SP指向某段内存空间,同样,代码段和数据段的安排也是同一道理。

第一题中,我们可以把20000-2000F看做一个栈段,把10000-1000F中的数据用push指令压到栈里,就实现了逆序拷贝。
所以把10000-1000F设为数据段,即DS=1000,把20000-2000F设为栈段,即SS=2000。SP值呢?...
阅读全文 | 评论次数(1) | 浏览次数(482) | 所属类型(汇编作业)

[2008-10-12 15:51] 3.1

(1)
2662
E626
E626
2662
D6E6
FD48
2C14
0000
00E6
0000
0026
000C   
//主要是内存中字单元和字节单元的操作

(2)
1、执行顺序:
mov ax,6622     执行后ax=6622  cs=2000  ip=0003  ds=1000
jmp 0ff0:0100   执行后ax=6622  cs=0ff0  ip=0100  ds=1000
mov ax,2000     执行后ax=2000  cs=0ff0  ip=0103  ds=1000
mov ds,ax         ...
阅读全文 | 评论次数(1) | 浏览次数(503) | 所属类型(汇编作业)
『 查看更多文章 』