下面的程序将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
...


- [游客] mov cx,4c00h ______...... mov ax,4c00h 05/18 16:46
- [ly6465686] 对了, 我的作业怎么没有看到, 我是刚进入的, ,呵。 。 申请成为了学员,,大哥,你能不能带带我, 09/05 10:43
- [app] 逻辑正确,但是明显没经过调试。 08/30 21:20
- [app] 兄弟,你这程序开头少帖了一行,别的倒是很正确。 08/30 21:16
- [mouse] 计算机告诉好了答案了,我就不说了 ^_^ 08/25 09:32
- [xiaoqiang] 不错,博主继续。。 08/25 08:55
- [xiaomk7758] 呵呵 给ax赋个值容易看出执行结果是否正确 08/22 09:52
- [lwbfq] 没有问题,不过你是计算的16*10,问题中说的是ax的值*10,有点出入。 08/22 09:42
- [lwbfq] 正确。 08/22 09:35
- [xiaomk7758] 呵呵 对是CS 写错了 08/19 14:58
[2008-08-26 11:10] 检测16.2
阅读全文 |
评论次数(1) |
浏览次数(696) |
所属类型(汇编作业)
[2008-08-26 10:50] 检测16.1
下面的程序将code中的a处的8个数据累加,结果存储到b处的dword中,补全程序。
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 --------------------...
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 --------------------...
阅读全文 |
评论次数(1) |
浏览次数(773) |
所属类型(汇编作业)
[2008-08-24 18:08] 第15章实验15 安装新的int 9中断例程
安装一个新的int 9中断例程,功能:在DOS下,按下‘A’键后,除非不在松开,如果松开,就显示满屏幕的'A';其他的键照常处理。
提示:按下一个键时产生的扫描码成为通码,松开一个键产生的扫名码称为断码。断码=通码+80h
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
...
提示:按下一个键时产生的扫描码成为通码,松开一个键产生的扫名码称为断码。断码=通码+80h
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
...
阅读全文 |
评论次数(1) |
浏览次数(729) |
所属类型(课程实验)
[2008-08-24 11:57] 检测15.1
(1)仔细分析一下上面的int9 中断例程,看看是否可以精简一下?
其实在我们的int 9中断例程中,模拟int指令调用原int 9中断例程的程序是可以精简的,因为在进入中断例程后,IF和TF都已经置0,没有必要在进行设置了。对于程序段:
pushf
pushf
pop ax
and ahm11111100b
push ax
popf
call dword ptr ds:[0]
可以精简为:
pushf ---------------------------------
call dword ptr ds:[0] -------...
其实在我们的int 9中断例程中,模拟int指令调用原int 9中断例程的程序是可以精简的,因为在进入中断例程后,IF和TF都已经置0,没有必要在进行设置了。对于程序段:
pushf
pushf
pop ax
and ahm11111100b
push ax
popf
call dword ptr ds:[0]
可以精简为:
pushf ---------------------------------
call dword ptr ds:[0] -------...
阅读全文 |
评论次数(1) |
浏览次数(820) |
所属类型(汇编作业)
[2008-08-21 01:38] 第14章实验14 访问CMOS RAM
编程:以“年/月/日 时:分:秒的格式,显示当前的日期、时间。
assume cs:code
code segment
row:db 9,8,7,4,2,0
start:mov ax,cs
mov ds,ax
mov si,offset row
mov di,0
mov cx,6
s:push cx
mov al,[si]
out 70h,al
in al,71h
mov ah,al
...
assume cs:code
code segment
row:db 9,8,7,4,2,0
start:mov ax,cs
mov ds,ax
mov si,offset row
mov di,0
mov cx,6
s:push cx
mov al,[si]
out 70h,al
in al,71h
mov ah,al
...
阅读全文 |
评论次数(1) |
浏览次数(714) |
所属类型(课程实验)
[2008-08-21 00:59] 检测14.2
编程:用加法和移位指令计算(ax)=(ax)*10
提示:(ax)*10=(ax)*2+(ax)*8
assume cs:code
code segment
start:mov ax,16
mov bx,ax
shl ax,1
mov cl,3
shl bx,cl
add ax,bx
mov ax,4c00h
int 21h
code ends
end start...
提示:(ax)*10=(ax)*2+(ax)*8
assume cs:code
code segment
start:mov ax,16
mov bx,ax
shl ax,1
mov cl,3
shl bx,cl
add ax,bx
mov ax,4c00h
int 21h
code ends
end start...
阅读全文 |
评论次数(2) |
浏览次数(721) |
所属类型(汇编作业)
[2008-08-21 00:11] 检测14.1
(1)编程:读取CMOS RAM的2号单元的内容。
assume cs:code
code segment
start:mov al,2
out 70h,al
in al,71h
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
...
assume cs:code
code segment
start:mov al,2
out 70h,al
in al,71h
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
...
阅读全文 |
评论次数(1) |
浏览次数(712) |
所属类型(汇编作业)
[2008-08-19 18:02] 第13章实验13 编写、应用中断例程(3)
(3)下面的程序,分别在屏幕的第2、4、6、8行显示四句英文诗,补全程序。
assume cs:code
code segment
s1: db 'Good,btter,best,','$'
s2: db 'Never let it rest,','$'
s3: db 'Till good is better,','$'
s4: db 'And better,best.','$'
s : dw offset s1,offset s2,offset s3,offset s4
row:db 2,4,6,8
start:mov ax,cs
...
assume cs:code
code segment
s1: db 'Good,btter,best,','$'
s2: db 'Never let it rest,','$'
s3: db 'Till good is better,','$'
s4: db 'And better,best.','$'
s : dw offset s1,offset s2,offset s3,offset s4
row:db 2,4,6,8
start:mov ax,cs
...
阅读全文 |
评论次数(0) |
浏览次数(488) |
所属类型(课程实验)
[2008-08-19 16:46] 第13章实验13 编写、应用中断例程(2)
(2)编写并安装int 7ch中断例程,功能为完成loop指令的功能。
参数:(cx)=循环次数,(bx)=位移
以上中断例程安装完成功后,对下面的程序进行单步跟踪,尤其注意观察int ,iret指令执行前后CS,IP和栈中的状态。
在屏幕中间显示80个‘!’
assume cs:code
code segment
start:mov ax,0b800h
mov es,ax
mov di,160*12
mov bx,offset s-offset se
mov cx,80
s: mov byte ptr es:[d...
参数:(cx)=循环次数,(bx)=位移
以上中断例程安装完成功后,对下面的程序进行单步跟踪,尤其注意观察int ,iret指令执行前后CS,IP和栈中的状态。
在屏幕中间显示80个‘!’
assume cs:code
code segment
start:mov ax,0b800h
mov es,ax
mov di,160*12
mov bx,offset s-offset se
mov cx,80
s: mov byte ptr es:[d...
阅读全文 |
评论次数(0) |
浏览次数(467) |
所属类型(课程实验)
[2008-08-19 15:21] 第13章实验13 编写、应用中断例程(1)
(1)编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处。
参数:(dh)=行号, (dl)=列号, (cl)=颜色, ds:si指向字符串首地址
以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int、iret指令执行前后CS、IP和栈中的状态。
assume cs:code
data segment
db "welcome to masm!",0
data ends
code segment
start:mov dh,10
mov dl,10
mov cl,2
...
参数:(dh)=行号, (dl)=列号, (cl)=颜色, ds:si指向字符串首地址
以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int、iret指令执行前后CS、IP和栈中的状态。
assume cs:code
data segment
db "welcome to masm!",0
data ends
code segment
start:mov dh,10
mov dl,10
mov cl,2
...
阅读全文 |
评论次数(0) |
浏览次数(498) |
所属类型(课程实验)
『 查看更多文章 』