|
主题 : : 【检测点】9.2实验 [待解决] |
回复[ 9次 ]
点击[ 862次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-01-18 15:39 ]
[引用]
[回复]
[ top ] | |
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51 |
1 assume cs:code
2 code segment
3 start: mov ax,cs ;我用的是cs里面的数据实验的
4 mov ds,ax
5 mov bx,0
6
7 s: mov cx,[bx] ;将[bx]送入cx
8 sub cx,0 ;用0与cx相减
9 jcxz ok ;如果cx=0,则执行标号ok出指令, 否则, 向下继续。。。
10 inc bx
11 jmp short s
12
13 ok: mov dx,bx
14
15 mov ax,4c00h
16 int 21h
17
18 code ends
19 end start
【实验结果】
d:\asm>debug j92.exe
-r
AX=0000 BX=0000 CX=0018 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14C9 ES=14C9 SS=14D9 CS=14D9 IP=0000 NV UP EI PL NZ NA PO NC
14D9:0000 8CC8 MOV AX,CS
-t
AX=14D9 BX=0000 CX=0018 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14C9 ES=14C9 SS=14D9 CS=14D9 IP=0002 NV UP EI PL NZ NA PO NC
14D9:0002 8ED8 MOV DS,AX
-t
AX=14D9 BX=0000 CX=0018 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14D9 ES=14C9 SS=14D9 CS=14D9 IP=0004 NV UP EI PL NZ NA PO NC
14D9:0004 BB0000 MOV BX,0000
-d ds:0 f
14D9:0000 8C C8 8E D8 BB 00 00 8B-0F 83 E9 00 E3 03 43 EB ..............C.
-g 13
AX=14D9 BX=0005 CX=0000 DX=0005 SP=0000 BP=0000 SI=0000 DI=0000
DS=14D9 ES=14C9 SS=14D9 CS=14D9 IP=0013 NV UP EI PL ZR NA PE NC
14D9:0013 B8004C MOV AX,4C00
-t
AX=4C00 BX=0005 CX=0000 DX=0005 SP=0000 BP=0000 SI=0000 DI=0000
DS=14D9 ES=14C9 SS=14D9 CS=14D9 IP=0016 NV UP EI PL ZR NA PE NC
14D9:0016 CD21 INT 21
-p
Program terminated normally
-d ds:0 f
14D9:0000 8C C8 8E D8 BB 00 00 8B-0F 83 E9 00 E3 03 43 EB ..............C.
-r dx
DX 0005
: | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-01-18 15:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51 |
感觉jcxz与loop类似, 都是检测cx中的值,
jcxz检测的是cx是否为零
loop对cx做递减操作,直至cx为零。
jcxz和jmp 配合, 要比单纯的loop循环, 有力多啦。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2010-01-27 21:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:2
注册日期:2010-01-04 23:00 |
7 s: mov cx,[bx] ;将[bx]送入cx
8 sub cx,0 ;用0与cx相减
请问楼主的这两条语句中sub cx, 0有什么用啊》 | | |
|
|
|
|
[第3楼]
[ 回复时间:2010-01-27 22:14 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:2
注册日期:2010-01-04 23:00 |
我的解决方法,请指导。
assume cs:code
code segment
start:
mov ax, 2000H
mov ds, ax
mov bx, 0
S:
mov ch, 0
mov cl, [bx] ;我们操作的是字节,只能赋值到cl,且ch要清空
jcxz OK
add bx, 1
jmp short S
OK:
mov dx, bx
mov ax, 4C00H
int 21H
code ends
end start | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-01-28 12:48 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-01-21 15:36 |
assume cs:code
code segment
start: mov ax,2000h
mov ds,ax
mov bx,0
s: mov cx,0 ;cx置0
or ch,ds:[bx] ;因为是字节操作,就用ch进行与运算,DS:[BX]为0的话ch就为0
jcxz ok
inc bx
jmp short s
ok: mov dx,bx
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第5楼]
[ 回复时间:2010-05-13 01:20 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-05-08 00:59 |
mov cx,[bx]
mov ch,0
jcxz ok
inc bx | | |
|
|
|
|
[第6楼]
[ 回复时间:2010-07-17 21:29 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-07-12 14:54 |
|
|
|
|
|
[第7楼]
[ 回复时间:2010-07-18 00:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:6
注册日期:2010-07-13 10:33 |
cx寄存器可以拆成ch和cl用的?
从来都没拆过的说 | | |
|
|
|
|
[第8楼]
[ 回复时间:2010-07-18 00:48 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:6
注册日期:2010-07-13 10:33 |
|
|
|
|
|
[第9楼]
[ 回复时间:2010-10-25 17:01 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-10-10 08:28 |
|