


- [lshang] 8个通用寄存器用了7个。。 如果先复制雇佣人数的话只能用bp中转 但是用bp就太不伦不类了。。 06/12 10:44
- [tily] 你先DIV算出“人均收入”,之后再复制“雇员数”好像跟我碰到一样的问题 就是先复制“雇员数”AX中的 06/11 21:48
- [lshang] 额 可能是因为型号不一样? Microsoft Windows [Version 6.1.76 06/06 17:19
- [lshang] 当前AX的值不就是2的8次方么? 1)ADD AX,AX AX = 2 ;2^1 JMP 06/06 17:13
- [游客] 写的不错,加油 06/06 17:05
- [游客] 写的不错,加油 06/06 17:04
- [lshang] right演示? 没懂 06/06 17:03
- [游客] 这样子是没有结果的。不行;请你思考:得到2的8次方,一共执行的多少次(运行了多少-t)? 06/06 16:59
- [游客] 只读存储器中的内容是不可改的,你的怎么可以呢? 下面是我电脑的运行结果: C:\masm5.0> 06/06 16:56
- [游客] right演示 06/06 16:49
[2011-06-21 16:36] 课程设计一
assume cs:code ,ds:data ,ss:stack
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995' ;54H
dd 16,22,382,1356,2390,8000,16000,24486,5006...
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995' ;54H
dd 16,22,382,1356,2390,8000,16000,24486,5006...
阅读全文 |
评论次数(0) |
浏览次数(938) |
所属类型(实验任务)
[2011-06-19 18:16] 实验十
1.显示字符串
子程序描述:
名称:show_str
功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。
参数:(dh) = 行号(取值范围0~24),(dl) = 列号(取值范围0~79),
(cl) = 颜色,ds:si指向字符串的首地址
返回:无
——————————————————————————————————
show_str:
push bp
mov bp,sp
push ax
push cx
push bx
push ds
push es
push si
mov ...
子程序描述:
名称:show_str
功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。
参数:(dh) = 行号(取值范围0~24),(dl) = 列号(取值范围0~79),
(cl) = 颜色,ds:si指向字符串的首地址
返回:无
——————————————————————————————————
show_str:
push bp
mov bp,sp
push ax
push cx
push bx
push ds
push es
push si
mov ...
阅读全文 |
评论次数(0) |
浏览次数(1018) |
所属类型(实验任务)
[2011-06-16 15:21] 实验九
编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'welcome to masm!'。
assume cs:code ,ds:data
data segment
db 'welcome to masm!'
db 02H ,24H ,71H ;以上部分定义了字符串及属性值
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,0B800H
mov es,ax ;以上部分初始化段寄存器
mov bx,67EH ;67EH指向屏幕中间第0行
mov di...
assume cs:code ,ds:data
data segment
db 'welcome to masm!'
db 02H ,24H ,71H ;以上部分定义了字符串及属性值
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,0B800H
mov es,ax ;以上部分初始化段寄存器
mov bx,67EH ;67EH指向屏幕中间第0行
mov di...
阅读全文 |
评论次数(0) |
浏览次数(814) |
所属类型(实验任务)
[2011-06-16 11:29] 实验八
分析下边的程序,运行前思考:这个程序可以正确返回吗?
运行后再思考:为什么会是这种结果?
assume cs:code
code segment
mov ax,4C00H
int 21H
start:
mov ax,0
S:
nop
nop
mov di,offset S
mov si,offset S2
mov ax,cs:[si]
mov cs:[di],ax
S0:
jmp short S
S1:
mov ax,0
int 21H
mov ax,0
S2:
j...
运行后再思考:为什么会是这种结果?
assume cs:code
code segment
mov ax,4C00H
int 21H
start:
mov ax,0
S:
nop
nop
mov di,offset S
mov si,offset S2
mov ax,cs:[si]
mov cs:[di],ax
S0:
jmp short S
S1:
mov ax,0
int 21H
mov ax,0
S2:
j...
阅读全文 |
评论次数(0) |
浏览次数(928) |
所属类型(实验任务)
[2011-06-10 11:08] 实验七
编程,将data段中的数据按如下格式写入到table段中,并计算21年中的人均收入(取整),结果也按照下面的格式保存在table段中。
——————————————————————————————————————————————
assume cs:code ,ds:data
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
d...
——————————————————————————————————————————————
assume cs:code ,ds:data
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
d...
阅读全文 |
评论次数(2) |
浏览次数(731) |
所属类型(实验任务)
[2011-06-09 14:58] 实验六
(1)将课程中所有讲解过的程序上机调试,用DEBUG跟踪其执行过程,并在过程中进一步理解所讲内容。
答:已私下完成。
(2)编程,完成问题7.9中的程序。
问题7.9
编程,将datasg段中每个单词的前4个字母改为大写字母。
——————————————————————————————————————
assume cs:code ,ds:data ,ss:stack
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
data segment
db '1. display '
db '2...
答:已私下完成。
(2)编程,完成问题7.9中的程序。
问题7.9
编程,将datasg段中每个单词的前4个字母改为大写字母。
——————————————————————————————————————
assume cs:code ,ds:data ,ss:stack
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
data segment
db '1. display '
db '2...
阅读全文 |
评论次数(0) |
浏览次数(411) |
所属类型(实验任务)
[2011-06-08 17:09] 实验五(6)
(6)程序如下,编写code段中代码,用push指令将A段中的前8个字型数据,逆序存储到B段中。
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8,9,0AH,0BH,0CH,0DH,0EH,0FH,0FFH
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
start:
mov ax,a
mov ds,ax
mov ax,b
mov ss,ax
mov sp,10H
mov bx,0
mov cx,8
S:
push...
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8,9,0AH,0BH,0CH,0DH,0EH,0FH,0FFH
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
start:
mov ax,a
mov ds,ax
mov ax,b
mov ss,ax
mov sp,10H
mov bx,0
mov cx,8
S:
push...
阅读全文 |
评论次数(0) |
浏览次数(374) |
所属类型(实验任务)
[2011-06-08 17:03] 实验五(5)
(5)程序如下,编写code段中代码,将a段和b段中的数据依次相加,将结果存到C段中。
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start:
mov ax,a
mov ds,ax
mov ax,b
mov es,ax
mov ax,c
mov ss,ax
mov sp,8
m...
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start:
mov ax,a
mov ds,ax
mov ax,b
mov es,ax
mov ax,c
mov ss,ax
mov sp,8
m...
阅读全文 |
评论次数(0) |
浏览次数(370) |
所属类型(实验任务)
[2011-06-08 16:49] 实验五(4)
(4)如果将(1)、(2)、(3)题中的最后一条伪指令“end start”改为“end”(也就是说,不指明程序的入口),则哪个程序仍然可以正确执行?请说明原因。
答:(3)题中的程序可以正确执行。因为在不指定程序入口的情况下,CS:IP将默认指向程序空间开始地址。将其中的内容作为指令进行执行。在(1)、(2)题中,程序开始地址所在段为自定义的数据段。只有在(3)题中程序开始地址在程序段中。程序可以正常执行。...
答:(3)题中的程序可以正确执行。因为在不指定程序入口的情况下,CS:IP将默认指向程序空间开始地址。将其中的内容作为指令进行执行。在(1)、(2)题中,程序开始地址所在段为自定义的数据段。只有在(3)题中程序开始地址在程序段中。程序可以正常执行。...
阅读全文 |
评论次数(0) |
浏览次数(379) |
所属类型(实验任务)
[2011-06-08 16:44] 实验五(3)
(3)将下面的程序编译连接,用Debug加载、跟踪,然后回答问题。
assume cs:code,ds:data,ss:stack
code segment
start:
mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[0]
mov ax,4C00H
int 21H
code ends
data segment
dw 0123H,0456H
data...
assume cs:code,ds:data,ss:stack
code segment
start:
mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[0]
mov ax,4C00H
int 21H
code ends
data segment
dw 0123H,0456H
data...
阅读全文 |
评论次数(0) |
浏览次数(373) |
所属类型(实验任务)