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

我的博客

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

[2008-03-13 20:33] 用7ch中断例程完成jmp near ptr s指令的功能,注意理解栈段

点击查看原图
;安装7ch中断例程
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset Int7cStart
mov ax,0
mov es,ax
mov di,0200h
cld
mov cx,offset Int7cEnd - offset Int7cStart 
rep movsb  ;将中断例程拷贝到0:200处
mov ax,0
mov ds,ax
mov word ptr  ds:[7ch*4],0200h
mov word ptr  ds:[7ch*4+2],0
      ...
阅读全文 | 评论次数(1) | 浏览次数(581) | 所属类型(汇编作业)

[2008-03-13 15:17] 推荐博文 体会病毒原理,编写int0除法溢出处理程序

点击查看原图
编写int0除法溢出处理中断程序
程序设计思路:
 编写一个0号中断处理程序,把该处理程序的段地址和偏移地址写入0号中断向量表,取代原中断处理程序,那么这个新的中断处理程序应该放在哪里呢?如果你写过dos的tsr(teminate still Resident)程序,应该知道原理的,但在这里讨论这个实在没什么意思,毕竟dos已经过时了,我们只要知道原理就行了,没有必要再深究.这里为了简单起见,王爽老师告诉我们了,0:200h-0:300h是一段安全的空间,我们新的处理程序就放在这里好了.
  主程序的作用是将新的中断程序拷贝至0:200处,然后改写向量表,使之指向我们的中断处理程序并返回...
阅读全文 | 评论次数(4) | 浏览次数(1847) | 所属类型(汇编作业)

[2008-03-12 21:32] 实验11:将一个以0结尾的含任意字符的字符串里的小写全部转变位大写字母

assume cs:code
data segment
 db "Beginner's All-purpose Symbolic Instruction Code.",0
data ends
code segment
begin:
  mov ax,data
  mov ds,ax
  mov si,0
  call letterc
  mov ax,4c00h
  int 21h


;*************************************************************
;子程序letterc
;将以0结尾的字符串中的小写...
阅读全文 | 评论次数(2) | 浏览次数(633) | 所属类型(汇编作业)

[2008-03-10 13:38] 又被出题的老师忽悠了(谢谢老师,呵呵),下次一定得注意!

mov dx,0  
    mov ax,1001  
    mov bx,100  
    div bl  
    以上四条指令执行完后,ah值是_____。  
 1、 1  
 2、 10  
 3、 1001  
 4、 0  
自己对div指令理解不够透彻,这里的除数是bl,8位寄存器,所以这里做的是8位除法,被除数放在ax中,做除法后,商放在al中,ah中放的是余数,这里是1
如果这里是div bx,那么做的就是16位除法,被除数的高16位放在dx中(这里dx=0),被除数的低16位放在ax中,做除法后,商放在ax中,余数放在dx中,那么结果就是ax=1...
阅读全文 | 评论次数(1) | 浏览次数(670) | 所属类型(汇编作业)

[2008-03-10 12:51] 实验10.3 在屏幕上将data段中的数据以10进制的形式显示出来

assume cs:code
data segment
db 10 dup (0)
data ends
code segment
 start:
  mov ax,12660
  mov bx,data
  mov ds,bx
  mov si,0
  call dtoc
  mov dh,8
  mov dl,3
  mov cl,2
  call show_str
  mov ax,4c00h
  int 21h
dtoc:
  push ax
  push bx
  push cx
  push dx
  push bp
  push si ...
阅读全文 | 评论次数(3) | 浏览次数(770) | 所属类型(汇编作业)

[2008-03-09 16:59] 实验10.2 解决除法溢出的问题

assume cs:code 
stack segment
   dw 16 dup (0)
stack ends
code segment
start:
    mov ax,stack
    mov ss,ax
    mov sp,32
    mov ax,4240h
    mov dx,000fh
    mov cx,0ah
    call divdw
    mov ax,4c00h
    int 21h
;********************************************************************...
阅读全文 | 评论次数(2) | 浏览次数(711) | 所属类型(汇编作业)

[2008-03-09 15:39] 实验10.1:在屏幕上指定位置显示字符串

assume cs:code 
data segment
    db 'welcome to masm!',0
data ends
stack segment
   dw 16 dup (0)
stack ends
code segment
start:
    mov dh,8
    mov dl,3
    mov cl,2
    mov ax,data
    mov ds,ax
    mov si,0
    mov ax,stack
    mov ss,ax
    mov sp,32;sp每次减2或是加2,这里是16个字,所以sp应定义为...
阅读全文 | 评论次数(3) | 浏览次数(389) | 所属类型(汇编作业)

[2008-03-09 13:40] 实验六:将每个单词的前四个字母改为大写

assume cs:code
stack segment
        dw 0,0,0,0,0,0,0,0
stack ends
data segment
        db '1. display      '
        db '2. browse       '
        db '3. replace      '
        db '4. modify       '
data ends
code segment
start:
 mov ax,stack
 mov ss,ax
 mov sp,16
 mov ax,data
 mov ...
阅读全文 | 评论次数(1) | 浏览次数(315) | 所属类型(汇编作业)

[2008-03-09 11:33] 第六章:用push指令将a段中的word数据,逆序存储到b段中

assume cs:code
a segment
 dw 1,2,3,4,5,6,7,8
a ends
b segment 
 dw 0,0,0,0,0,0,0,0
b ends
code segment
start:
mov ax,a
mov ds,ax
mov ax,b
mov ss,ax
mov sp,16
mov bx,0
mov cx,8
s:
mov ax,ds:[bx]
push ax
inc bx
inc bx
loop s
mov ax,04c00h
int 021h
code ends
end start...
阅读全文 | 评论次数(1) | 浏览次数(375) | 所属类型(汇编作业)

[2008-03-09 11:07] 第六章 将a段和b段的数据依次相加,结果存到c段

assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends 
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment 
db 0,0,0,0,0,0,0,0
c ends
code segment
start:
 mov ax,a
 mov es,ax
 mov ax,b
 mov ss,ax
 mov ax,c
 mov ds,ax
 mov bx,0
 mov cx,8
s:
 mov al,es:[bx]
 mov dl,ss:[bx]
 add al,dl
 m...
阅读全文 | 评论次数(2) | 浏览次数(331) | 所属类型(汇编作业)
页码数(2):  1  2