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

我的博客

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

[2009-02-01 03:40] 课程设计2 完成

;************安装程序部分*************
assume cs:setup
setup segment
start:
        mov al,1
        mov ah,3
        mov ch,0
        mov cl,1
        mov dh,0
        mov dl,0
        mov bx,boot
        mov es,bx
        sub bx,bx
        int 13h
        
        mov ax,offset sizeof_main_end
        mov cl,9
        shr ax,cl
        inc al
        mov ah,3
        mov ch,0
        mov cl,2
        mov dh,0
        ...
阅读全文 | 评论次数(2) | 浏览次数(803) | 所属类型(汇编作业)

[2009-01-29 17:41] 检测点 16.2

下面的程序将data段中a处的8个数据累加,结果存储到b处的字中,补全程序。
assume cs:code,es:data

data segment
        a db 1,2,3,4,5,6,7,8
        b dw 0
data ends

code segment
start:        __mov ax,data__
        __mov es,ax__
        mov si,0
        mov cx,8
s:        mov al,a[si]
        mov ah.0
        add b,ax
        inc si
        loop s

        mov ax,4c00h
        int 21h
code ends
end ...
阅读全文 | 评论次数(1) | 浏览次数(795) | 所属类型(汇编作业)

[2009-01-29 17:28] 检测点 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 __a[si+18]__,ax
        adc __a[si+16]__,0
        add si,__2__
        loop s

        mov ax,4c00h
        int 21h

code ends
end start...
阅读全文 | 评论次数(1) | 浏览次数(765) | 所属类型(汇编作业)

[2009-01-28 22:07] 试验 15 有疑惑

assume cs:main

stack segment
            db 30h dup (0)
stack ends

main segment



start:
        mov ax,stack
        mov ss,ax
        mov sp,30h

        mov ax,cs
        mov ds,ax
        mov si,offset int9
        mov ax,0
        mov es,ax
        mov di,200h
        
        mov ax,es:[9*4]
        mov ds:[offset int9_data],ax
        mov ax,es:[9*4+2]
        mov ds:...
阅读全文 | 评论次数(2) | 浏览次数(789) | 所属类型(汇编作业)

[2009-01-28 20:22] 检测点15.1

(1) 仔细分析一下上面的int9中断例程,看看是否可以精简一下?

pushf
pushf
pop ax
and ah,11111100b
push ax
popf
call dword ptr ds:[0]

可以精简为:
pushf
call dword ptr ds:[0]

两条指令。

(2) 仔细分析上面程序中的主程序,看看有什么潜在的问题?

问题源1:
mov word ptr es:[9*4],offset int9
mov es:[9*4+2],cs

修正1:
cli
mov word ptr es:[9*4],offse...
阅读全文 | 评论次数(1) | 浏览次数(732) | 所属类型(汇编作业)

[2009-01-22 19:56] 实验 14

assume cs:main


stack segment
        db 10h dup (0)
stack ends


main segment
start:
        mov ax,0B800h
        mov ds,ax
        mov si, 1920 + 62
        mov di,offset data
        mov ax,stack
        mov ss,ax
        mov sp,10h
        
        mov cx,6
print:        push cx
        mov al,cs:[di]
        out 70h,al
        in al,71h

        mov ah,al
        mov cl,4
        shr...
阅读全文 | 评论次数(2) | 浏览次数(557) | 所属类型(汇编作业)

[2009-01-22 18:29] 检测点 14.2

编程:用加法和移位指令计算(ax)=(ax)*10

mov dx,ax
mov cl,3
shl ax,cl
shl dx,1
add ax,dx...
阅读全文 | 评论次数(1) | 浏览次数(642) | 所属类型(汇编作业)

[2009-01-22 18:17] 检测点 14.1

(1) 编程,读取CMOS RAM的2号单元的内容。

mov al,2
out 70h,al
in al,71h

(2) 编程,向CMOS RAM的2号单元写入0。

mov al,2
out 70h,al
sub al,al
out 71h,al...
阅读全文 | 评论次数(2) | 浏览次数(795) | 所属类型(汇编作业)

[2009-01-22 16:51] 检测点 13.2

判断下面说法的正误:

(1) 我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初始化程序。

错,FFFF:0 处的指令都是固化在ROM中的,并不是在内存中的,所以我们无法通过编程改变它。

(2) int 19h 中断例程,可以由DOS提供。

对,DOS可以对int 19h 中断例程重定义,但是在开机后第一次使用的int 19h 中断例程,并不是来自于内存,而是在ROM中,所以DOS不能影响开机后第一次执行的int 19h的中断例程。...
阅读全文 | 评论次数(3) | 浏览次数(979) | 所属类型(汇编作业)

[2009-01-22 16:31] 检测点 13.1

(1) 在上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?

-32768 ~ 32767

(2) 用7ch中断例程完成jmp near prt s 指令的功能,用bx向中断例程传送转移位移。

应用举例:在屏幕的第12行,显示data段中以0结尾的字符串。

assume cs:code
data segment
        db 'conversation',0
data ends
code segment
start:        mov ax,data
        mov ds,ax
        mov si,0
        mov ax,0b8...
阅读全文 | 评论次数(1) | 浏览次数(570) | 所属类型(汇编作业)
『 查看更多文章 』