;汇编语言 第二版 王爽 实验17
;安装一个新的int 7ch中断例程,实现通过逻辑扇区号对软盘进行读写。
;参数说明:
;1.用ah传递功能号:0表示读,1表示写
;2.用dx传递要读写的扇区的逻辑扇区号
;3.用es:bx指向存储读出数据或写入数据的内存区。
;没有软驱,无法验证,不知道是否可行
assume cs:code
code segment
main:
mov ax, 0
mov es, ax
mov di, 200h
mov ax, cs
mov ds, ax
mov si, offset subs
mov cx, ...


- [hheliu] 10.5 第二个程序的AX为1,BX为0。 08/19 16:38
- [hheliu] 10.4 问的是:add ax,[bp]的值,不是楼主以为的: mov ax,[bp],所以我 08/19 16:08
- [游客] 10.4 ax的值 应为ax=6的值加上ip偏移量3+ip的值 为11 05/18 16:09
- [游客] 楼主 10.4 ax的值应为4 05/18 16:05
- [suntarn] 呵,谢谢给予肯定! 11/19 18:19
- [younggay] 程序没问题。 11/18 13:54
- [mess] 答案都可以自己通过debug得到结果,正确与否博主验证一下吧,我就不累述了 哈哈 11/13 15:09
- [suntarn] 到现在我至少发现了一个错误:每个字串后没加上0标志。 11/03 22:37
- [suntarn] 唉,刚才看了别人做的,和高手们更正的,发现我的更正也错了!! 原来2.3的是更改了IP值4次,其中 10/16 20:23
- [suntarn] 谢谢tinyparticle! 更正:CPU修改了3次IP值…… 10/16 19:46
[2009-11-26 20:29] 汇编语言 第二版 王爽 实验17
阅读全文 |
评论次数(0) |
浏览次数(540) |
所属类型(汇编作业)
[2009-11-23 20:56] 汇编语言 第二版 王爽 检测点16
汇编语言 第二版 王爽 检测点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, 4c00h
in...
检测点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, 4c00h
in...
阅读全文 |
评论次数(0) |
浏览次数(367) |
所属类型(汇编作业)
[2009-11-23 20:43] 汇编语言 第二版 王爽 实验16 编写包含多个功能子程序的中断例程
;汇编语言 第二版 王爽 实验16 编写包含多个功能子程序的中断例程
;安装一个新的int 7ch中断例程,为显示输出提供如下功能子程序。
;1.清屏
;2.设置前景色
;3.设置背景色
;4.向上滚动一行
;入口参数说明如下。
;1.用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行
;2.对于2、3号功能,用al传送颜色值,(al) ∈ {0, 1, 2, 3, 4, 5, 6, 7}。
assume cs:code
code segment
main:
mov ax, 0
mov es, ax
mov di...
;安装一个新的int 7ch中断例程,为显示输出提供如下功能子程序。
;1.清屏
;2.设置前景色
;3.设置背景色
;4.向上滚动一行
;入口参数说明如下。
;1.用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行
;2.对于2、3号功能,用al传送颜色值,(al) ∈ {0, 1, 2, 3, 4, 5, 6, 7}。
assume cs:code
code segment
main:
mov ax, 0
mov es, ax
mov di...
阅读全文 |
评论次数(0) |
浏览次数(642) |
所属类型(汇编作业)
[2009-11-23 20:42] 汇编语言 第二版 王爽 实验15 安装新的int 9中断例程
;汇编语言 第二版 王爽 实验15 安装新的int 9中断例程
assume cs:code
code segment
main:
;把中断例程送到指定位置
mov ax, code
mov ds, ax
mov si, offset int9
mov ax, 0
mov es, ax
mov di, 204h
mov cx, offset showhexend - offset int9
cld
rep movsb
;保存原中断例程地址
mov ax, es:[9 * 4]
mov es:[200h], ax
mov...
assume cs:code
code segment
main:
;把中断例程送到指定位置
mov ax, code
mov ds, ax
mov si, offset int9
mov ax, 0
mov es, ax
mov di, 204h
mov cx, offset showhexend - offset int9
cld
rep movsb
;保存原中断例程地址
mov ax, es:[9 * 4]
mov es:[200h], ax
mov...
阅读全文 |
评论次数(0) |
浏览次数(481) |
所属类型(汇编作业)
[2009-11-20 21:54] 实验14 访问CMOS RAM
;汇编语言 第二版 王爽 实验14 访问CMOS RAM
;编程,以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。
;存放单元:秒:0, 分:2, 时:4, 日:7, 月:8, 年:9
assume cs:code
data segment
db 18 dup (?)
data ends
code segment
;in: (al) = bcd码,ds:si存储ascii空间
bcd2a:
push ax
push cx
mov ah, al
mov cl, 4
shr al, cl
and al, 00001111...
;编程,以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。
;存放单元:秒:0, 分:2, 时:4, 日:7, 月:8, 年:9
assume cs:code
data segment
db 18 dup (?)
data ends
code segment
;in: (al) = bcd码,ds:si存储ascii空间
bcd2a:
push ax
push cx
mov ah, al
mov cl, 4
shr al, cl
and al, 00001111...
阅读全文 |
评论次数(0) |
浏览次数(426) |
所属类型(汇编作业)
[2009-11-20 21:22] 汇编语言 第二版 王爽 检测点14
汇编语言 第二版 王爽 检测点14
检测点14.1
1.编程,读取CMOS RAM的2号单元的内容
out 70h, 2
in al, 71h
2.编程,向CMOS RAM 的2号单元写入0
out 70h, 2
mov al, 0
out 71h, al
检测点14.2
编程,用加法和移位指令计算(ax) = (ax) * 10
提示,(ax) * 10 = (ax) * 2 + (ax) * 8。
mov dx, ax
shl ax, 1
mov cl, 3
shl dx, cl
add ax, dx...
检测点14.1
1.编程,读取CMOS RAM的2号单元的内容
out 70h, 2
in al, 71h
2.编程,向CMOS RAM 的2号单元写入0
out 70h, 2
mov al, 0
out 71h, al
检测点14.2
编程,用加法和移位指令计算(ax) = (ax) * 10
提示,(ax) * 10 = (ax) * 2 + (ax) * 8。
mov dx, ax
shl ax, 1
mov cl, 3
shl dx, cl
add ax, dx...
阅读全文 |
评论次数(0) |
浏览次数(493) |
所属类型(汇编作业)
[2009-11-19 18:21] 汇编语言 第二版 王爽 检测点13
汇编语言 第二版 王爽 检测点13.1
(1) 在上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?
10000h / 2 - 1
(2) 用7ch中断例程完成jmp near ptr 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 ...
(1) 在上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程所能进行的最大转移位移是多少?
10000h / 2 - 1
(2) 用7ch中断例程完成jmp near ptr 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 ...
阅读全文 |
评论次数(0) |
浏览次数(492) |
所属类型(汇编作业)
[2009-11-16 20:09] 实验12 编写0号中断程序
;汇编语言 第二版 王爽 实验12 编写0号中断程序
;在屏幕中间显示 "Overflow Error!"
assume cs:code
code segment
do0:
jmp short do0start
msg db 'O',2,'v',2,'e',2,'r',2,'f',2,'l',2,'o',2,'w',2,' ',2,'E',2,'r',2,'r',2,'o',2,'r',2
msgend db 0
do0start:
push ds
push es
push si
push di
push cx
mov cx, 0 ...
;在屏幕中间显示 "Overflow Error!"
assume cs:code
code segment
do0:
jmp short do0start
msg db 'O',2,'v',2,'e',2,'r',2,'f',2,'l',2,'o',2,'w',2,' ',2,'E',2,'r',2,'r',2,'o',2,'r',2
msgend db 0
do0start:
push ds
push es
push si
push di
push cx
mov cx, 0 ...
阅读全文 |
评论次数(2) |
浏览次数(494) |
所属类型(汇编作业)
[2009-11-10 19:00] 实验11 编写子程序
;汇编语言 第二版 王爽 实验11 编写子程序
;编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变为大写字母,描述如下:
;名称:letterc
;功能:将以0结尾的字符串中的小写字母转变为大写字母
;参数:ds:si指向字符串首地址
assume cs:codesg
datasg segment
db "Beeginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:
mov ax, datasg
mov ds, ax
m...
;编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变为大写字母,描述如下:
;名称:letterc
;功能:将以0结尾的字符串中的小写字母转变为大写字母
;参数:ds:si指向字符串首地址
assume cs:codesg
datasg segment
db "Beeginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:
mov ax, datasg
mov ds, ax
m...
阅读全文 |
评论次数(0) |
浏览次数(390) |
所属类型(汇编作业)
[2009-11-10 18:59] 检测点11.1
汇编语言 第二版 王爽
检测点11.1
写出下面每条指令执行后,ZF、PF、SF等 标志位的值。
sub al, al ZF = 1, PF = 1, SF = 0
mov al, 1 ZF = 1, PF = 1, SF = 0
push ax ZF = 1, PF = 1, SF = 0
pop bx ZF = 1, PF = 1, SF = 0
add al, bl ZF = 0, PF = 0, SF = 0
add al, 10 ZF = 0, PF = ?, SF = 0
mul al ZF = 0, PF = ?, SF = 0
检测点11.2 ...
检测点11.1
写出下面每条指令执行后,ZF、PF、SF等 标志位的值。
sub al, al ZF = 1, PF = 1, SF = 0
mov al, 1 ZF = 1, PF = 1, SF = 0
push ax ZF = 1, PF = 1, SF = 0
pop bx ZF = 1, PF = 1, SF = 0
add al, bl ZF = 0, PF = 0, SF = 0
add al, 10 ZF = 0, PF = ?, SF = 0
mul al ZF = 0, PF = ?, SF = 0
检测点11.2 ...
阅读全文 |
评论次数(1) |
浏览次数(501) |
所属类型(汇编作业)
『 查看更多文章 』