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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
文章收藏

[2012-10-12 15:12] 实验十

点击查看原图
这个实验主要练习子程序的书写,重点把握现场保护与恢复、参数的传递和返回,相当于C中的函数
掌握了这些我们以后就可以写一些大程序了,比如贪吃蛇、俄罗斯方块啊等等
1、显示字符串
     comment            ;
实验十 第一题     
 编写显示子程序,在指定位置显示指定格式的字符串 


              assume    cs:code,ds:data
        data  segment
              db        'welcome to masm!',0
        data  ends
     ...
阅读全文 | 评论次数(1) | 浏览次数(273) | 所属类型(汇编作业)

[2012-10-12 15:06] 第十章的检测点

点击查看原图
10.1
①mov ax,cs
②mov ax0

10.2
当call s进入指令缓冲区后,cs:ip 会指向下一条指令
执行call s时
第一步:push ip(此时的ip=6)
第二步:修改ip
(ax)=6

10.3
但call far ptr s进入指令缓冲区,cs:ip指向1000:8
执行call far ptr s时
第一步 push cs
第二步 push ip
第三步给cs:ip 重新赋值
此时栈里是08 00 00 10
pop ax  ax=8
add ax,ax ax=10
pop bx bx=1000
add ax,bx...
阅读全文 | 评论次数(0) | 浏览次数(152) | 所属类型(汇编作业)

[2012-10-11 15:58] 实验九

点击查看原图
assume    cs:code,ds:data,ss:stack
        data  segment               ;数据段
              db        'welcome to masm!'      ;要显示的数据
              db        2h,24h,81h  ;属性,可以利用h定义十六进制数据
        data  ends
       stack  segment               ;栈段
              dw        8 dup(0)
       stack  e...
阅读全文 | 评论次数(1) | 浏览次数(156) | 所属类型(汇编作业)

[2012-10-11 15:57] 检测点9.3

; 检测点9.3
              assume    cs:code
        code  segment
      start:
              mov       ax,2000h
              mov       ds,ax
              mov       bx,0
          s:
              mov       cl,[bx]
              mov       ch,0        ;如果找到了,那么此时cx=0
              inc       c...
阅读全文 | 评论次数(1) | 浏览次数(148) | 所属类型(汇编作业)

[2012-10-11 15:56] 检测点9.2

; 检测点9.2 
              assume    cs:code
        code  segment
      start:
              mov       ax,2000h
              mov       ds,ax
              mov       bx,0
          s:
              ;填空开始
              mov       cl,[bx]
              mov       ch,0
              jcxz      ok...
阅读全文 | 评论次数(1) | 浏览次数(161) | 所属类型(汇编作业)

[2012-10-11 15:55] 检测点9.1

点击查看原图
(1)
; 检测点9.1 
     comment            ;
想让cs:ip从第一条指令重新执行,那么 字([bx+1])=0
结果见图片     

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

[2012-10-11 15:52] 实验八

comment            ;
 这道题的运行看起来有些古怪。其实,具体分析一下它也是可以正常返回的 
1、首先,s-s0表达的意思是把s2处的两个字节指令复制到s处
2、然后,jump到s处执行,关键就是这个s处,它这条指令到底代表什么意思要想知道s处的指令什么意思,就得看它的来源s2处
3、接下来,我们分析s2处的jmp short s1,从汇编源程序的角度,我们看到的是jump到s1处执行。可是,如果我们编译连接后这个程序是可以正常退出的,这又怎么解释呢?
好了,让我们站在机器码的角度去分析这条指令jmp short s1
① 
从图中,我们可以看到编译后的指令为...
阅读全文 | 评论次数(1) | 浏览次数(142) | 所属类型(汇编作业)

[2012-10-10 18:08] 实验七

点击查看原图
comment            ;  块注释
失误:
1、把数据输错了
2、偏移量计算失误
3、想到了除法溢出,但此处好像不需要 
说明:
1、bx作为年份的偏移
2、bx+idata作为收入的偏移,bx每次加4
3、si作为雇员数的偏移的,以上偏移的段地址在ds中
4、es:[di]->table中的单元 

              assume    cs:code,ds:data
        data  segment
;年份
              db        '1975','1976','1977','1978','1979'...
阅读全文 | 评论次数(1) | 浏览次数(137) | 所属类型(汇编作业)

[2012-10-10 18:04] 实验六

点击查看原图
comment            ;
 实验六 
;            
              assume    cs:code,ds:data,ss:stack
       stack  segment
              dw        8 dup(0)
       stack  ends
        data  segment
              db        '1. dispaly      '
              db        '2. brows        '
              db  ...
阅读全文 | 评论次数(1) | 浏览次数(157) | 所属类型(汇编作业)

[2012-10-10 15:43] 实验五

点击查看原图
(1)
①CPU执行程序,程序返回前data段中的数据是1908:0000  23 01 56 04 89 07 BC 0A-EF 0D ED 0F BA 0C 87 09 
②CPU执行程序,程序返回前cs=190ah,ss=1909h,ds=1908h 
③设程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1 
见图1 
(2)
①CPU执行程序,程序返回前data段中的数据是1908:0000  23 01 56 04 00 00 00 00-00 00 00 00 00 00 00 00
②CPU执行程序,程序返回前cs=190...
阅读全文 | 评论次数(3) | 浏览次数(161) | 所属类型(汇编作业)
页码数(4):  1  2  3  4