


[2013-05-04 10:48] 实验17
编写包含多个功能子程序的中断例程
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov si,offset i7c
mov di,200h
mov ax,0
mov es,ax
mov cx,offset i7cend-offset i7c
cld
rep movsb ;安装int 7c中断
cli
mov ...
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov si,offset i7c
mov di,200h
mov ax,0
mov es,ax
mov cx,offset i7cend-offset i7c
cld
rep movsb ;安装int 7c中断
cli
mov ...
阅读全文 |
评论次数(0) |
浏览次数(693) |
所属类型(汇编作业)
[2013-05-04 08:54] 检测点17.1
在int 16h中断例程中,一定有设置if=1的指令,这种说法对吗?
这种说法对的...
这种说法对的...
阅读全文 |
评论次数(0) |
浏览次数(650) |
所属类型(汇编作业)
[2013-05-03 11:00] 实验16 编写包含多个功能子程序的中断例程
安装一个新的int 7ch中断例程,为显示输出提供如下功能子程序
(1) 清屏;
(2) 设置前景色;
(3) 设置北景色;
(4) 向上滚动一行;
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov ax,0
mov es,ax
mov si,offset int7c
mov di,200h ;设置ds:si和es:...
(1) 清屏;
(2) 设置前景色;
(3) 设置北景色;
(4) 向上滚动一行;
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov ax,0
mov es,ax
mov si,offset int7c
mov di,200h ;设置ds:si和es:...
阅读全文 |
评论次数(0) |
浏览次数(732) |
所属类型(汇编作业)
[2013-05-02 21:01] 检测点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 ds,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 s...
字中,补全程序.
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 ds,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 s...
阅读全文 |
评论次数(0) |
浏览次数(659) |
所属类型(汇编作业)
[2013-05-02 20:57] 检测点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 (b),ax
adc b[2],0
add si,(2)
loop s
mov ax,4c00h
int 21h
code ends
end start...
双字中,补全程序.
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 (b),ax
adc b[2],0
add si,(2)
loop s
mov ax,4c00h
int 21h
code ends
end start...
阅读全文 |
评论次数(0) |
浏览次数(642) |
所属类型(汇编作业)
[2013-05-02 13:54] 实验15
在松开'A'键时,在满屏幕显示A
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov ax,0
mov es,ax
mov si,offset int9
mov di,0204h ;设置ds:si与es:di
push es:[9*4]
pop es:[200h]
push es:[9*4+2]
pop es:[2...
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov ax,0
mov es,ax
mov si,offset int9
mov di,0204h ;设置ds:si与es:di
push es:[9*4]
pop es:[200h]
push es:[9*4+2]
pop es:[2...
阅读全文 |
评论次数(0) |
浏览次数(696) |
所属类型(汇编作业)
[2013-04-30 22:27] 检测点15.1
(1)
pushf
pushf
pop ax
and ah,11111100b
push ax
popf
call dword ptr ds:[0]
可以精简为
(pushf)
(call dword ptr ds:[0])
(2)需要在下面两条指令前后各加一条指令
mov word ptr es:[9*4],offset int9
mov es:[9*4+2],cs ;设置新的int 9入口地址
(cli)
mov word ptr es:[9*4],offset int9
mov es:[9*4+2],cs
(sti)...
pushf
pushf
pop ax
and ah,11111100b
push ax
popf
call dword ptr ds:[0]
可以精简为
(pushf)
(call dword ptr ds:[0])
(2)需要在下面两条指令前后各加一条指令
mov word ptr es:[9*4],offset int9
mov es:[9*4+2],cs ;设置新的int 9入口地址
(cli)
mov word ptr es:[9*4],offset int9
mov es:[9*4+2],cs
(sti)...
阅读全文 |
评论次数(0) |
浏览次数(673) |
所属类型(汇编作业)
[2013-04-25 22:26] 实验14 访问CMOS RAM
编程,以“年/月/日 时:分:秒”的格式显示当前的日期、时间
assume cs:code
data segment
db '/',':'
data ends
code segment
start: mov ax,0b800h
mov es,ax
mov di,160*12+30*2
mov ax,data
mov ds,ax ;设置好es:di及ds
mov bl,ds:[0]
mov bh,ds:[1] ;bx/sp分别为'/'和':'
mov byte ptr es:[di],'2'
mov byte ptr es:[di+1]...
assume cs:code
data segment
db '/',':'
data ends
code segment
start: mov ax,0b800h
mov es,ax
mov di,160*12+30*2
mov ax,data
mov ds,ax ;设置好es:di及ds
mov bl,ds:[0]
mov bh,ds:[1] ;bx/sp分别为'/'和':'
mov byte ptr es:[di],'2'
mov byte ptr es:[di+1]...
阅读全文 |
评论次数(0) |
浏览次数(636) |
所属类型(汇编作业)
[2013-04-24 23:04] 检测点14.2
编程,用加法和移位计算(ax)=(ax)*10
1.用加法算
assume cs:code
code segment
start: mov dx,0
mov cx,10
mov bx,ax
s: add ax,bx
adc dx,0
loop s ;循环执行完后dx:ax为ax*10的结果
mov ax,4c00h
int 21h
code ends
end start
2.用位移算
assume cs:code
code segment
start: mov dx,0
mov dx,ax
mov cl,5
s...
1.用加法算
assume cs:code
code segment
start: mov dx,0
mov cx,10
mov bx,ax
s: add ax,bx
adc dx,0
loop s ;循环执行完后dx:ax为ax*10的结果
mov ax,4c00h
int 21h
code ends
end start
2.用位移算
assume cs:code
code segment
start: mov dx,0
mov dx,ax
mov cl,5
s...
阅读全文 |
评论次数(0) |
浏览次数(221) |
所属类型(汇编作业)
[2013-04-24 23:03] 检测点14.1
(1) 编程,读取COMS RAM 的2号单元的内容
mov al,2h
out 70h,al
in al,71h
(2) 编程,向CMOS RAM的2号单元写入0.
mov al,2h
out 70h,al
mov al,0
out 71h,al...
mov al,2h
out 70h,al
in al,71h
(2) 编程,向CMOS RAM的2号单元写入0.
mov al,2h
out 70h,al
mov al,0
out 71h,al...
阅读全文 |
评论次数(0) |
浏览次数(199) |
所属类型(汇编作业)