|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
《汇编语言》中4.9说,Debug将程序从加载入内存之后,CX存放的是程序的长度。
我想问问,如果通过其它方式将程序从加载入内存之后,CX的值是多少? 我写了一个将CX放入显存的程序,但是在执行程序的时候,并没有将程序的长度显示出来。 所以,问题来了, 通常情况下将程序从加载入内存之后,CX的值是多少?
附测试程序:
- assume cs:code
- code segment
- start:
- mov ax,0b800h
- mov ds,ax
- mov bx,07b8h
- mov [bx],cl
- mov dl,24h
- mov [bx+1],dl
- mov ax,4c00h
- int 21h
-
- code ends
- end start
复制代码
最后的显示:
这个图片,这段代码,应该可以解决你的疑问了
- assume cs:code
- code segment
- start:
- mov ax, 0b800h
- mov es, ax
-
- mov ax, cx
- and ax, 00f0h
-
- push cx
- mov cl, 4
- shr ax, cl
- pop cx
-
- cmp ax, 10
- jge @f
-
- add ax, '0'
- mov byte ptr es:[160 * 10], al
- jmp next
-
- @@:
- sub ax, 10
- add ax, 'A'
- mov byte ptr es:[160 * 10], al
- next:
- mov ax, cx
- and ax, 000fh
- cmp ax, 10
- jge @f
-
- add ax, '0'
- mov byte ptr es:[160 * 10 + 2], al
- jmp next
-
- @@:
- sub ax, 10
- add ax, 'A'
- mov byte ptr es:[160 * 10 + 2], al
-
- mov ax,4c00h
- int 21h
- code ends
- end start
复制代码
|
|