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

我的博客

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

[2012-02-09 20:27] 汇编课程设计二

所用软件:vmware 6.5.3 ms-dos 7.0 WinImage
功能说明:
       1.重启计算机:把新的cs和ip值入栈,利用retf进行设置。
       2.引导现有操作系统:把c盘的1个扇区拷贝到0:7c00处,利用1的方法,进行跳转。
       3.显示日期和时间。读取cmos的时间值。按键功能利用中断程序,这里的键盘中断程序只提供给这里。
       4.设置日期和时间值。主要是字符串的输入的处理,利用了17章的程序。
主要思路:分三个文件:主文件/中断处理文件/设置日期的文件。计算机开机先扫瞄软盘的1扇区的程序拷贝到0:7c00处,然后因为有...
阅读全文 | 评论次数(1) | 浏览次数(594) | 所属类型(默认类型)

[2012-02-01 13:46] 汇编第十七章学习小结

1.当键盘输入时,吧按键的扫描码和对应的ascii码存入键盘缓冲区中。高位字节存储扫描码,地位存储ascii码。
2.int 16h中断例程读取键盘缓冲区的字符 :1>检测键盘缓冲区中是否有数据;2>没有则继续做第一步;3>读取缓冲区第一个字单元中的键盘输入;4>将读取的扫描码送人ah,ascii送人al,5>将已读取的键盘输入从缓冲区中删除。
3.课后习题:
      assume cs:code
     data segment
     db 512 dup(89)
     db 512 dup(0)
     data ends
     code segment...
阅读全文 | 评论次数(0) | 浏览次数(289) | 所属类型(默认类型)

[2012-01-31 11:22] 汇编第十六章直接定址表小结

1.标号如果带:则表示内存地址,否则表示内存地址和单元长度。
2.后面有:的地址标号,只能在代码段中使用,不能在其他段中使用。
3.如果想在代码段中直接用数据标号访问数据,则需要用伪指令assume将标号所在的段和一个段寄存器联系起来,否则编译器在编译的时候,无法确定标号的段地址在哪一个寄存器中。
4.标号的段地址是在哪个段中定义的就是那个段的段地址。标号包含了段地址和偏移地址。
5.课后习题
     

     CODES SEGMENT
        ASSUME CS:CODES
    START:
        ;传输7ch号代码
        mov cx,offset int...
阅读全文 | 评论次数(3) | 浏览次数(443) | 所属类型(默认类型)

[2012-01-30 20:27] 汇编第十五章外中断小结

1.cpu通过端口和外部设备进行联系。
2.cpu在执行完当前指令后,可以检测到发送过来的中断信息,引发中断过程,处理外设的输入。
3.if是可屏蔽中断的标志位
4.按下键操作时,产生一个扫描码,其说明了按下的键在键盘上的位置。送人60h端口。松开键时,产生一个断码。
5.习题
   assume cs:code
   stack segment
        db 128 dup (0)
   stack ends


  code segment
  start:
    ;栈区设置
        mov ax,stack
        mov ss,ax
        mov sp,128
        
        ;...
阅读全文 | 评论次数(1) | 浏览次数(314) | 所属类型(默认类型)

[2012-01-29 20:03] 汇编第十四章端口学习小结

点击查看原图
1.通过端口,能够对设备进行统一管理,方便,我感觉通过归纳,能够进行统一的处理。
2.课后习题:
   没有采用循环的方式,比较机械,一个一个的处理的
   
     CODES SEGMENT
    ASSUME CS:CODES
    START:
        ;设置屏幕输出参数
        mov bx,0b800h
    mov es,bx
    mov si,0

        ;处理年份
    mov al,9
    out 70h,al
    in al,71h
    mov ah,al
    mov cl,4
    shr ah,cl
    and...
阅读全文 | 评论次数(2) | 浏览次数(301) | 所属类型(默认类型)

[2012-01-29 09:40] 汇编第十三章小结

1.int 指令的最终功能和call指令相似,都是调用一段程序。
2.中断处理程序如果要返回主程序,要使用iret指令。
3.课后习题
  1>显示一个以0结尾的字符串
   
        DATAS SEGMENT
    ;此处输入数据段代码 
    db "welcomoe to masdfsdfsdfdsfsm!",0 
        DATAS ENDS
        CODES SEGMENT
    ASSUME CS:CODES
        START:
        
        ;传输0号代码
        mov cx,offset re - offset ch_st0
        mov ax,0
        mov es,ax
...
阅读全文 | 评论次数(1) | 浏览次数(538) | 所属类型(默认类型)

[2012-01-28 12:30] 汇编第十二章内中断小结

点击查看原图
1.中断是指CPU不再接着(刚才执行完的指令)向下执行,而是转去处理这个特殊信息。cpu内部有四种中断类型。
2.cpu在接到中断信息后,所引发的中断过程
  1>(从中断信息中)取得中断类型码;
  2>标志寄存器入栈
  3>设置tf=0,if=0
  4>cs入栈
  5>ip入栈
  6>从中断向量表中取得新的ip和cs
3.课后习题
   
   CODES SEGMENT
    ASSUME CS:CODES
   START:
        ;传输0号代码
        mov cx,offset re - offset error1
        mov ax,0
        mov es...
阅读全文 | 评论次数(1) | 浏览次数(378) | 所属类型(默认类型)

[2012-01-27 22:53] 第十一章标志寄存器小结

点击查看原图
1.溢出标志位of: 
        带符号数的算术运算结果,若超出了8位或16位数所能表达的范围时,of=1,表示产生溢出;否则of=0. 
        8位数应该在-128至+127之间,16位数在-32768至+32767. 
2.进位标志位cf: 
        当指令执行的结果在最高位出现进位或借位时,cf=1;否则为0.  
3. 
   cmp(compare)指令进行比较两个操作数的大小

   例:cmp oprd1,oprd2

   为第一个操作减去第二个操作数,

   但不影响第两个操作数的值

   它影响flag的CF,ZF,O...
阅读全文 | 评论次数(1) | 浏览次数(409) | 所属类型(默认类型)

[2012-01-26 18:25] 汇编课程设计一

点击查看原图
assume cs:code,ds:data,ss:stack
data segment
        db '1975','1976','1977','1978','1979','1980',
        '1981','1982','1983','1984','1985','1986','1987',
        '1988','1989','1990','1991','1992','1993','1994',
        '1995'
        dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
        dd 345980,590827,803530...
阅读全文 | 评论次数(1) | 浏览次数(308) | 所属类型(默认类型)

[2012-01-25 20:09] 第10章call 和ret指令学习小结(2)

2>解决除法溢出的问题
   divdw 
   参数: (ax)=dword型数据的低16位
          (bx)=dword型数据的高16位
          (cx)=除数
   结果:  (dx)=结果的高16位:(ax)=结果的低16位
           (cx)=余数
   先把高16位进行16位除法,再进行余下的16位除法。
   ASSUME CS:CODES,SS:STACKS
   stack segment
        dw 32 dup(0)
   stack ends

   CODES SEGMENT
   
   START:
...
阅读全文 | 评论次数(0) | 浏览次数(249) | 所属类型(默认类型)
页码数(2):  1  2