测试通过
assume cs:code
code segment
start:mov ax,2000H
mov ds,ax
mov bx,0
s:mov cl,[bx];把当前内存写入CL
mov ch,0
inc cx;由于LOOP判断前会减1,所以增加1
inc bx;指向下一个内存地址
loop s;CX先减1,若不为零,跳转到s
ok:dec bx
mov dx,bx
mov ax,4c00H
...
- [tankle] 感谢楼主 03/08 19:34
- [zhy_zhy] 博主说的很详细,终于知道自己错在哪里了…… 07/06 15:19
- [flyincold] 唉,我第一次也错在第一题了 05/21 14:11
- [daydream] 看了,上面的精彩言论,顿时茅塞顿开啊!!! 03/05 09:13
- [lycwg] 哦,不好意思,刚才是我搞错了。FFFF0H-FFFFH=EFFF1H 02/08 22:10
- [lycwg] 2、 物理地址为ffff0H的内存单元的偏移地址可能为ffffH。 FFFF0H 02/08 21:47
- [游客] 正确。 02/05 15:06
- [游客] s:mov cx,ds:[bx];把查找的位置的字写入CX mov ch,0;去 02/05 15:02
- [younggay] 分析的都正确。 02/02 15:53
- [b2311057] 重新检查,发现空格在table段已经定义好了,画蛇添足又重新定义一遍空格,修改后代码更加精炼。 论 01/20 13:14
[2009-02-04 23:21] 检测点9.3作业
阅读全文 |
评论次数(1) |
浏览次数(777) |
所属类型(汇编作业)
[2009-02-04 22:46] 检测点9.2作业
测试通过
assume cs:code
code segment
start:mov ax,2000H
mov ds,ax
mov bx,0
s:mov cx,ds:[bx];把查找的位置的字写入CX
mov ch,0;去掉高位的值
jcxz ok;如果CX=0,跳转到OK
inc bx;下一个搜索位置
jmp short s
ok:mov dx,bx
mov ax,4c00H
int 21H
code ends ...
assume cs:code
code segment
start:mov ax,2000H
mov ds,ax
mov bx,0
s:mov cx,ds:[bx];把查找的位置的字写入CX
mov ch,0;去掉高位的值
jcxz ok;如果CX=0,跳转到OK
inc bx;下一个搜索位置
jmp short s
ok:mov dx,bx
mov ax,4c00H
int 21H
code ends ...
阅读全文 |
评论次数(1) |
浏览次数(812) |
所属类型(汇编作业)
[2009-02-01 10:29] 检测点9.1作业
全部测试通过
(1)
assume cs:code
data segment
db 5,0,0,5,5,5
;跳转的位置是bx+1,由于bx=0,因此,要保证1的位置
;也就是第二个位置起一个字的位置(即两个字节)
;必须为0才能在段间转移到start的位置
;至于其他位可以任意填写,长度也可以任意指定
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
code ends
end start ...
(1)
assume cs:code
data segment
db 5,0,0,5,5,5
;跳转的位置是bx+1,由于bx=0,因此,要保证1的位置
;也就是第二个位置起一个字的位置(即两个字节)
;必须为0才能在段间转移到start的位置
;至于其他位可以任意填写,长度也可以任意指定
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
code ends
end start ...
阅读全文 |
评论次数(1) |
浏览次数(799) |
所属类型(汇编作业)
[2009-01-20 09:52] 第八章测试顺利通过
经过仔细推敲和上机测试,所有4道题全部一次性答对:
下列指令序列不能够实现把内存地址0:202h中的字节数据送入al功能的是 3。
1、 mov ax,0
mov ds,ax
mov bx,202h
mov al,[bx]
2、 mov ax,0
mov ds,ax
mov bx,200h
mov al,[bx+2]
3、 mov ax,0
mov ds,ax
mov bp,202h
mov al,[bp]
bp在未指定的时候默认段地址为...
下列指令序列不能够实现把内存地址0:202h中的字节数据送入al功能的是 3。
1、 mov ax,0
mov ds,ax
mov bx,202h
mov al,[bx]
2、 mov ax,0
mov ds,ax
mov bx,200h
mov al,[bx+2]
3、 mov ax,0
mov ds,ax
mov bp,202h
mov al,[bp]
bp在未指定的时候默认段地址为...
阅读全文 |
评论次数(1) |
浏览次数(577) |
所属类型(学习心得)
[2009-01-20 08:55] 第八章实验任务
上机调试通过:
assume cs:codesg
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'
;以上是表示21年的21个字符串(从00H到21*4=54H:53H)
dd 16,22,382,1356,2390,8000,16000,24486,50065,974...
assume cs:codesg
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'
;以上是表示21年的21个字符串(从00H到21*4=54H:53H)
dd 16,22,382,1356,2390,8000,16000,24486,50065,974...
阅读全文 |
评论次数(2) |
浏览次数(796) |
所属类型(汇编作业)
[2009-01-05 06:36] 第七八章要记住的一些数据
and al,11011111b ASC字母转换为大写(也可写00DFH)
or al,00100000b ASC字母转换为小写(也可写0020H)
用寄存器表示内存地址,只能使用BX/BP/SI/DI四种寄存器
复用只能使用BX+SI/BX+DI/BP+SI/BP+DI四种形态
BX和BP不能复用的原因可能是在没有特殊指明的时候默认段地址不同
有BX时候默认为DS的段地址,有BP时默认为SS的段地址
SI和DI不能复用的原因不明...
or al,00100000b ASC字母转换为小写(也可写0020H)
用寄存器表示内存地址,只能使用BX/BP/SI/DI四种寄存器
复用只能使用BX+SI/BX+DI/BP+SI/BP+DI四种形态
BX和BP不能复用的原因可能是在没有特殊指明的时候默认段地址不同
有BX时候默认为DS的段地址,有BP时默认为SS的段地址
SI和DI不能复用的原因不明...
阅读全文 |
评论次数(0) |
浏览次数(577) |
所属类型(关键备忘)
[2009-01-05 06:28] 两次才通过第七章测试
第7章汇编测试题目
共3道单选题目
生成EXE之后用Debug加载后,查看寄存器内容如下:
ds=0b2d es=0b2d ss=0b3d cs=0b3e ip=0000
程序的起始地址的段地址是 3。
程序的起始地址应该是ds+10h,也就是0b3dh
第一次答题没有看清楚题目,粗心了,问的是程序的起始地址
CS指向的是指令的起始地址的段地址,若指令放在程序开始,那么程序的起始地址就等于指令的起始地址的段地址,否则程序的起始地址有可能是数据的段地址,也有可能是堆栈的段地址。
1、 0b3e
2、 0b2d
3、...
共3道单选题目
生成EXE之后用Debug加载后,查看寄存器内容如下:
ds=0b2d es=0b2d ss=0b3d cs=0b3e ip=0000
程序的起始地址的段地址是 3。
程序的起始地址应该是ds+10h,也就是0b3dh
第一次答题没有看清楚题目,粗心了,问的是程序的起始地址
CS指向的是指令的起始地址的段地址,若指令放在程序开始,那么程序的起始地址就等于指令的起始地址的段地址,否则程序的起始地址有可能是数据的段地址,也有可能是堆栈的段地址。
1、 0b3e
2、 0b2d
3、...
阅读全文 |
评论次数(1) |
浏览次数(736) |
所属类型(学习心得)
[2009-01-04 20:39] 第七章实验任务
程序调试通过:
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:mov ax,datasg
mov ds,ax
mov...
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:mov ax,datasg
mov ds,ax
mov...
阅读全文 |
评论次数(1) |
浏览次数(567) |
所属类型(汇编作业)
[2009-01-04 11:04] 第六章实验任务
全部上机测试通过
1、
23 01 56 04 89 07 BC 0A EF 0D ED 0F BA 0C 87 09
0B67 0B66 0B65
X-2 X-1
2、
23 01 56 04 00 00 00 00 00 00 00 00 00 00 00 00
0B67 0B66 0B65
X-2 X-1
若N小于16,则为16,大于16,则补齐不足16倍数的数量
3、
23 01 56 04 00 00 00 00 00 00 00 00 00 00 00 00
0B65 0B69 0B68
X+3 X+4
4、如果前面3题都把END START...
1、
23 01 56 04 89 07 BC 0A EF 0D ED 0F BA 0C 87 09
0B67 0B66 0B65
X-2 X-1
2、
23 01 56 04 00 00 00 00 00 00 00 00 00 00 00 00
0B67 0B66 0B65
X-2 X-1
若N小于16,则为16,大于16,则补齐不足16倍数的数量
3、
23 01 56 04 00 00 00 00 00 00 00 00 00 00 00 00
0B65 0B69 0B68
X+3 X+4
4、如果前面3题都把END START...
阅读全文 |
评论次数(2) |
浏览次数(547) |
所属类型(汇编作业)
[2009-01-04 09:38] 做了3遍终于通过第六章测试
第一遍错了2道,第二遍又错了2道。
在Intel8086环境下,下列说法合理的是 3。
1、 汇编语言程序载入内存后处于64K空间以外的数据和指令将无法使用和执行。
可以通过改变段地址访问和执行64K空间以外的数据和指令
2、 一个数据段命名为data,此标号代表这个数据段在内存中的起始地址。
一个数据段命名为data,此标号代表这个数据段在内存中的起始地址的段地址
3、 如果载入的程序没有返回语句,那么当程序代码执行完毕,将继续读取后续内存空间存储的指令到CPU内部作为指令执行下去,直到遇到返回指令为止。
4、 用DW和DD定义进...
在Intel8086环境下,下列说法合理的是 3。
1、 汇编语言程序载入内存后处于64K空间以外的数据和指令将无法使用和执行。
可以通过改变段地址访问和执行64K空间以外的数据和指令
2、 一个数据段命名为data,此标号代表这个数据段在内存中的起始地址。
一个数据段命名为data,此标号代表这个数据段在内存中的起始地址的段地址
3、 如果载入的程序没有返回语句,那么当程序代码执行完毕,将继续读取后续内存空间存储的指令到CPU内部作为指令执行下去,直到遇到返回指令为止。
4、 用DW和DD定义进...
阅读全文 |
评论次数(3) |
浏览次数(609) |
所属类型(学习心得)
『 查看更多文章 』