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

我的博客

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

[2009-02-09 00:56] 综合研究4、5

研究实验4  不用main函数编程

(1)程序f.c的问题
①编译正常,连接出现错误。
②Linker Error:Undefined symbol '_main' in module COS
③这个错误信息可能与COS.OBJ相关。

(2)

f()
{        
        PUSH BP
        MOV BP,SP
    *(char far *)(0xb8000000+160*10+80)='a';
            MOV BX,B800
            MOV ES,BX
            MOV BX,0690
            MOV BYTE PTR ES:[BX],61
    *(c...
阅读全文 | 评论次数(0) | 浏览次数(735) | 所属类型(汇编作业)

[2009-02-08 17:50] 综合研究1~3

研究实验1 搭建一个精简的C语言开发环境

研究结果:
            必须用到的相关文件有5个,分别是:COS.OBJ、EMU.LIB、MATHS.LIB、GRAPHICS.LIB、CS.LIB。
    

研究实验2 使用寄存器

1.main函数的代码应该在code段中
2.通过打印main函数的偏移地址,发现结果为1FA.用Debug加载后找到了main函数汇编代码。
  在printf语句中,main函数本身被调用,其入口偏移地址自然传递给printf函数被打印出来。
3.当main函数在调用void f(void)这个函数时,其汇编代码为  call 地址,验证了...
阅读全文 | 评论次数(2) | 浏览次数(839) | 所属类型(汇编作业)

[2009-02-07 10:58] 课程设计2

点击查看原图
assume cs:code

code segment

start:
;*****************************
;*********软盘安装程序********
;*****************************
        mov al,3        ;扇区数
        mov ah,3        ;写操作
        mov ch,0        ;磁道号
        mov cl,1        ;扇区号
        mov dh,0        ;面
        mov dl,0        ;驱动器号,0表示A
        
        mov bx,offset boot        
        push cs
        pop es                ;es:bx指向要被写入的内存单元
        
        i...
阅读全文 | 评论次数(3) | 浏览次数(963) | 所属类型(汇编作业)

[2009-02-06 16:56] 第17章 使用BIOS进行键盘输入和磁盘读写

点击查看原图
检测点17.1

    “在int 16h中断例程中,一定有设置IF=1的指令。”这种说法对吗?
答:我认为是正确的。CPU在进入中断例程时,首先就将IF和TF置零,而IF=0则屏蔽了键盘输入这种可屏蔽中断,一旦键盘缓冲区中没有数据,则CPU一直处于死等状态,从而无限制等待检测。只有将IF设置为1,允许键盘输入数据进入键盘缓冲区,int 16h才能继续进行。


实验17 编写包含多个功能子程序的中断例程

    安装一个新的int 7ch中断例程,实现通过逻辑扇区号对软盘进行读写。
参数说明:
(1)用ah寄存器传递功能号:0表示读,1表示写;
(2)用bx寄存器传...
阅读全文 | 评论次数(2) | 浏览次数(840) | 所属类型(汇编作业)

[2009-02-04 19:45] 第16章 直接定址表

点击查看原图
检测点16.1

    下面的程序将code段中a处的8个数据累加,结果存储到b处的双字中,补全程序。
assume cs:code
code segment
  a dw 1,2,3,4,5,6,7,8
  b dd 0
start:        mov si,0
        mov cx,8
s:        mov ax,a[si]
              ----
        add word ptr b,ax
            ----------
        adc word ptr b[2],0
            -------------
        add si,2
               --
        loop s
        
        mov ax,...
阅读全文 | 评论次数(3) | 浏览次数(393) | 所属类型(汇编作业)

[2009-02-02 04:46] 第15章 外中断

点击查看原图
检测点15.1

(1) 仔细分析一下上面的int 9中断例程,看看是否可以精简一下?
        pushf
        pushf
        pop ax
        and ah,11111100b
        push ax
        popf
        call dword ptr ds:[0]
可以精简为:
        pushf
        ---------------------
        call dword ptr ds:[0]
        ---------------------
两条指令。        

(2) 仔细分析上面程序中的主程序,看看有什么潜在的问题?
在主程序中,如果在执行设置int 9中断例程的段地址和偏移地址的指令之间发生了...
阅读全文 | 评论次数(1) | 浏览次数(365) | 所属类型(汇编作业)

[2009-02-01 09:00] 第十四章 端口

点击查看原图
检测点14.1

(1)编程:读取CMOS RAM的2号单元的内容。
assume cs:code
code segment
start:        mov al,2
        out 70h,al
        in al,71h                ;7:03时测试显示al=03
        
        mov ax,4c00h
        int 21h
code ends
end start

(2)编程:向CMOS RAM的2号单元写入0
assume cs:code
code segment
start:        mov al,2
        out 70h,al
        mov al,0
        out 71h,al
        in al,71h                ...
阅读全文 | 评论次数(1) | 浏览次数(435) | 所属类型(汇编作业)

[2009-02-01 03:59] 实验13 编写、应用中断例程

点击查看原图
(1)编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处。
   参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串首地址。

assume cs:code
code segment
start:        
;********安装程序到内存********
        mov ax,cs
        mov ds,ax
        mov si,offset show                        ;设置ds:si指向源地址
        mov ax,0
        mov es,ax
        mov di,200h                                ;设置es:di指向目的地址
        mov cx,offset show...
阅读全文 | 评论次数(1) | 浏览次数(467) | 所属类型(汇编作业)

[2009-02-01 00:49] 第13章 int指令

点击查看原图
检测点13.1

(1)在上面的内容中,我们用7cH中断例程实现loop的功能,则上面的7cH中断例程所能进行的最大转移位移是多少?
答:因为是实现loop指令的功能,而loop指令对IP的修改范围为-128~127,所以最大转移位移为128(向前)。

(2)用7cH中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移指令。
assume cs:code
data segment
        db 'conversation',0
data ends
code segment
start:        
;********安装程序到内存********
        mov ...
阅读全文 | 评论次数(2) | 浏览次数(386) | 所属类型(汇编作业)

[2009-01-31 12:28] 第十二章 内中断

点击查看原图
检测点12.1
(1)用Debug查看内存,情况如下:
0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00
则,3号中断源对应的中断处理程序的入口地址为:0070:018B.
(2)存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为:4N.
   存储N号中断源对应的中断处理程序入口的段地址的内存单元的地址为:4N+2.

实验12 编写0号中断的处理程序

assume cs:code

code segment

start:
        mov ax,cs
        mov ds,ax

        mo...
阅读全文 | 评论次数(1) | 浏览次数(428) | 所属类型(汇编作业)
页码数(3):  1  2  3