首页
社区
课程
招聘
[求助] 新学碰到问题求解
发表于: 2009-8-11 15:34 3678

[求助] 新学碰到问题求解

2009-8-11 15:34
3678
dseg    segment
        count dw  101h    ;自己加 第2行
dseg ends
cseg segment
main proc far
        assume cs:cseg,ds:dseg,es:dseg,ss:dseg
start:
        push        ds
        push    ax
        mov ax,dseg   ;后加
        mov ds,ax       ;后加
        sub        ax,ax
        sub        dx,dx
        mov        bx,count         ;自己加的 第14行
        mov        ch,4
rotate: mov        cl,4
        rol        bx,cl
        mov        al,bl
        and        al,0fh
        add        al,30h
        cmp        al,3ah
        jl        print
        add        al,7h
print:  
        mov        dl,al
        mov        ah,2
        int        21h
        dec        ch
        jnz        rotate
        ret     
main endp
cseg ends
end  start             

书本上的把BX里的内容用16进制显示。 但我改后就是加了第2、14行后
在第一次没加上第10,11两行时 ,显示的是20CD 不是我在第二行定义的数据。
但把第14行的count 改成立即数,mov bx,12 显示的结果又是对的
没搞明白 是什么原因。请知道的详细解答下。自己看书想好好久都没想明白。
我用masm5编译的

开始编译时忘了加
mov ax,dseg
mov ds,ax
谢谢一个网友指正。但加上后。编译没问题 。执行时 就报无效指令,没明白。。。。。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 234
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没用过masm,提一些你值得查的地方……


  • 你确认访问变量的值是mov  bx,count,而不是mov bx, [count]么?至少在nasm里mov bx, count获得是count的地址;

  • rol  bx,cl, mov  al,bl 这两条语句执行完,显然bl应该等于0了啊,怎么可能还是原来的值呢?
2009-8-11 16:19
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我用的masmplus,应该差不多?
结果是0101没错啊。还是编译器不同的问题?

楼上说的不对吧……
1. count在data段中作为变量,mov bx,count确实是传值
2. rol指令每次右移4位,第一轮循环确实是0,但第二轮循环就是1了啊
    mov  cl,4
    rol  bx,cl
    mov  al,bl
    and  al,0fh
这3条指令起到每次取bx4位的作用
2009-8-11 16:35
0
雪    币: 234
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上说的不对吧……

偶犯傻了…………
2009-8-11 16:55
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hcx
5
谢谢各位:
报无效指令通过baidu 找到了方法
在ret 指令后加上下面的指令就不会报。达到预期效果
MOV AH,1
INT 21H
MOV AH,4CH
INT 21H


新学还真是不容易啊!看书上的东西看上去没问题,自己改下跑起来问题大堆。。。。
2009-8-11 17:28
0
雪    币: 21
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
- -!
mov ax,1
int 21h
mov ah,4c00h
int 21h
2009-8-11 17:56
0
雪    币: 339
活跃值: (10)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
7
还不错,呵呵
2009-8-11 18:42
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
很不错,呵呵
2009-8-12 11:38
0
游客
登录 | 注册 方可回帖
返回
//