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

我的博客

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

[2012-06-21 23:57] 实验10.1

点击查看原图
;在显示器上显示第m行,第n列开始一段以0结束的字符串,颜色规定从1~10h;
;这里m=8,n=3
assume cs:code,ds:data
data segment
   db 'welcome to masm!',0
   db 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,10h
   db 15 dup (0)
data ends
code segment
start:    
       mov ax,data
       mov ss,ax
       mov ds,ax
       mov sp,30h...
阅读全文 | 评论次数(3) | 浏览次数(418) | 所属类型(默认类型)

[2012-06-21 15:24] JMP指令、CALL指令、RET指令和RETF指令整理

点击查看原图
学习第十章时,常和第九章JMP命令混淆,故学习整理了下。。...
阅读全文 | 评论次数(0) | 浏览次数(337) | 所属类型(默认类型)

[2012-06-17 22:45] 10.4检测点

内存地址    机器码               汇编指令  
1000:0    b8 06 00           mov ax,6 
1000:2    ff d0              call ax 
1000:5    40                inc ax 
1000:6                      mov bp,sp
                            add ax,[bp]

分析:
mov ax,6    ---> ax=6;
call ax     ---> ip值 5h 存堆栈,然后读ax中值给IP,...
阅读全文 | 评论次数(1) | 浏览次数(323) | 所属类型(默认类型)

[2012-06-17 22:16] 10.3检测点

内存地址    机器码               汇编指令 
1000:0   b8 00 00           mov ax,0
1000:3    9a 09 00 00 10    call fat ptr s
1000:8    40                inc ax
1000:9    58              s: pop ax
                             add ax,ax
                             pop bx
                             add ax...
阅读全文 | 评论次数(1) | 浏览次数(320) | 所属类型(默认类型)

[2012-06-17 15:21] 10.2 检测

内存地址        机器码                 汇编指令
1000:0      b8 00 00             mov ax,0
1000:3       e8 01 00             call s
1000:6      40                    inc ax
1000:7      58                   s:pop ax

程序执行后,AX中数值是:6
分析: 
call执行过程,sp=sp-2,(ss*16+sp)=(ip)
即把IP内容压栈,因CS:IP指向下一条语句,ip=6,
pop ...
阅读全文 | 评论次数(1) | 浏览次数(321) | 所属类型(默认类型)

[2012-06-17 15:03] 10.1检测

assume cs:code
stack segment
  db 16 dup (0)
stack ends
code segment
start: mov ax,stack
       mov ss,ax
       mov sp,16
       mov ax,1000h
       push ax
       mov ax,0
       push ax
       retf
code ends
end start...
阅读全文 | 评论次数(1) | 浏览次数(308) | 所属类型(默认类型)

[2012-06-02 23:37] 关于第六章实验5.3,代码段基址、数据段基址、堆栈基址之间换算

学习到实验5,突然头脑糊涂了,重新快速阅读了前面章节,重点看了下 程序前缀PSP部分,PSP共256字节,PSP基址:SA,程序区基址SA+10H.看到这里突然想不起为是10H,256字节怎么换算知道是10H?
    256-->换算16进制 --> 100H 
又物理地址=EA*16+SA  则 100H/16  --->  10H;

    通过上面知识了解后,重看下实验5.3程序,算程序占34字节,即34/16=2.2,因段基址为16的倍数,则2.2为3。
    不难得出:CODE段的段地址为X,则DATA段的段地址为 X+3 ,STACK段的段地址为 X+4...
阅读全文 | 评论次数(1) | 浏览次数(192) | 所属类型(默认类型)
页码数(1):  1