|
主题 : : 第五章测试题目 [已解决] |
回复[ 6次 ]
点击[ 342次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2013-07-22 16:59 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:2
注册日期:2013-07-10 14:19 |
对于如下程序
assume cs:code
code segment
start:mov ax,code
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
s:mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
下列说法正确的是______。
1、 指令mov ax,code改为mov ax,start对程序要实现的功能没有任何影响。
2、 程序不能通过编译,因为在loop指令之前,没有对寄存器cx进行设定。
3、 程序实现的功能是将程序的所有指令复制到内存中以0:200h为起始地址的一段内存空间中。
4、 程序实现的功能是用内存中以0:200h为起始地址的一段内存空间中的数据将程序的所有指令覆盖。
这一题网上找到的答案是 3 .
我先说说这里不懂得地方
1,start:mov ax,code code 明显是一个segment 这里使用start开始,难道跟c的main一样 ?
2,
mov al,[bx]
mov es:[bx],al
[bx] 2个字节 16位 al 8位 赋值时明显少一个字节 ,数据不完整
3,loop s 以cx 计数,这里cx的初始值是多少呢? | | |
|
|
|
|
[第1楼]
[ 回复时间:2013-07-22 17:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:2
注册日期:2013-07-10 14:19 |
第二问撤销
忘记inc bx 了,这里是一点点加上去的. | | |
|
|
|
|
[第2楼]
[ 回复时间:2013-07-22 18:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:0
注册日期:2013-05-23 21:42 |
1.start只是一个标号
3.程序中CX初始值是程序的字节数
这些知识点书上都有 | | |
|
|
|
|
[第3楼]
[ 回复时间:2013-07-23 10:54 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:2
注册日期:2013-07-10 14:19 |
1,start是标记号,可是在程序中没有引用到start , 前五章貌似没有,还有就是mov ax,code 的用法 | | |
|
|
|
|
[第4楼]
[ 回复时间:2013-07-24 17:07 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:2
注册日期:2013-07-10 14:19 |
看了第六章,可以解释第一个疑问了,start是一个标号,后面应该还有end start 指明程序执行的入口,code 也是一个标号,标号可以作为段地址使用 | | |
|
|
|
|
[第5楼]
[ 回复时间:2013-07-25 15:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:2
注册日期:2013-07-10 14:19 |
复习了第四章, cx初始值是程序的字节数,2楼威武
end | | |
|
|
|
|
[第6楼]
[ 回复时间:2013-07-25 15:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:2
注册日期:2013-07-10 14:19 |
此贴由 贴主 于 [ 2013-07-25 15:46 ] 结贴。 结贴原因:问题已解决 | | |