新手学汇编,请教几个问题

zeussword 2011-02-13 07:48:33
1.输出:

C教材里面介绍的输出指令很很完整;但包括王爽在内的大多数教材,都没有完整的介绍输出指令问题,我的老师也没仔细讲,为什么?感觉这个很重要啊。。。如果是太多太繁琐的话,那常用的输出指令有哪些?能给个像http://www.cppreference.com/wiki/start
一样的链接么?

2.C语言里面,数组的结尾会有\0作标志,汇编是不是也一样呢?
比如这个问题:
data segment
array db 5,6,8,?,8,?
data ends
如何数这个数组里面整数的个数?

3.有没有比较简单的判断质数的方法呢?除了建质数库比较。。。

谢谢各位啦!!!
...全文
152 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zeussword 2011-02-13
  • 打赏
  • 举报
回复
对,就是ASCII中的null,000

结贴
谢谢各位啦
[Quote=引用 13 楼 masmaster 的回复:]

a db 0
b db ?

编译一下,看他们都是什么。
[/Quote]
masmaster 2011-02-13
  • 打赏
  • 举报
回复
a db 0
b db ?

编译一下,看他们都是什么。
zeussword 2011-02-13
  • 打赏
  • 举报
回复
不是吧。。。ASCII 中数字0的ASCII值是048

[Quote=引用 11 楼 lactoferrin 的回复:]

ASCII 中的 0就是0
[/Quote]
Lactoferrin 2011-02-13
  • 打赏
  • 举报
回复
ASCII 中的 0就是0
zeussword 2011-02-13
  • 打赏
  • 举报
回复
你是指数据 0 还是 ASCII 中的 000, 也就是 null?

[Quote=引用 9 楼 lactoferrin 的回复:]

?会由0代替
[/Quote]
Lactoferrin 2011-02-13
  • 打赏
  • 举报
回复
?会由0代替
zeussword 2011-02-13
  • 打赏
  • 举报
回复
你两次看错我的问题啦 XD

2 那里的问号是一个空字节,比如:
array1 db 2 dup(0,1,2,?)
等效于
array1 db 0,1,2,?,0,1,2,?

我第一次问的是,如何数 array db 5,6,8,?,8,? 里面 整数 的个数

第二次问的是 db 0,1,? 里面的 ? 在实际内存中是不是以 00000000 储存的

再次谢谢你啦 :P

[Quote=引用 7 楼 masmaster 的回复:]

引用 6 楼 zeussword 的回复:
引用 1 楼 mhbbcrcpj 的回复:

1.
DOS里面的实现都很复杂,个人感觉主要是让人理解输出不是个简单的事,如果在windows里面的话就简单多了,有printf那样的API,非常好用。
2.
用什么做结尾是个规定,标准或者说约定俗成。汇编里面的DOS中断时用$做结束标记的。但大部分时候都是直接弄个类似
array db 5,……
[/Quote]
masmaster 2011-02-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zeussword 的回复:]
引用 1 楼 mhbbcrcpj 的回复:

1.
DOS里面的实现都很复杂,个人感觉主要是让人理解输出不是个简单的事,如果在windows里面的话就简单多了,有printf那样的API,非常好用。
2.
用什么做结尾是个规定,标准或者说约定俗成。汇编里面的DOS中断时用$做结束标记的。但大部分时候都是直接弄个类似
array db 5,6,8,?,8,?
count equ $-a……
[/Quote]

1,
简单的说, 输出字符串调用dos 21H的9号功能,如
mov ah,9
mov dx,offset stringAddress;字符串地址
int 21H
输出单个字符, 调用dos 21H的2号功能,如
mov ah,2
mov dl,'A';字符放在寄存器dl中
int 21H

2,
db在汇编里表示一个字节的存储单元。
zeussword 2011-02-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mhbbcrcpj 的回复:]

1.
DOS里面的实现都很复杂,个人感觉主要是让人理解输出不是个简单的事,如果在windows里面的话就简单多了,有printf那样的API,非常好用。
2.
用什么做结尾是个规定,标准或者说约定俗成。汇编里面的DOS中断时用$做结束标记的。但大部分时候都是直接弄个类似
array db 5,6,8,?,8,?
count equ $-array
的东西计算数组的长度。
如果愿意的……
[/Quote]

1.那常用的输出字符串,数字的各种进制的命令有哪些呢?
就是这个int xx指令,现在还是搞不清楚啊。。。

2.看来只能那样了,那请问db里面的?在内存中储存的是不是 00000000 ?

3.谢谢你!
masmaster 2011-02-13
  • 打赏
  • 举报
回复
3.有没有比较简单的判断质数的方法呢?除了建质数库比较。。
简单的标准是什么?判断质数的方法很多。
Lactoferrin 2011-02-13
  • 打赏
  • 举报
回复
masm中有sizeof和lengthof可以获得数组的大小,项目数
db后面有多少东西就是多少东西,汇编就是什么都由你决定(少数除外)
MHBBCRCPJ 2011-02-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mhbbcrcpj 的回复:]
引用 1 楼 mhbbcrcpj 的回复:
1.
DOS里面的实现都很复杂,个人感觉主要是让人理解输出不是个简单的事,如果在windows里面的话就简单多了,有printf那样的API,非常好用。
2.
用什么做结尾是个规定,标准或者说约定俗成。汇编里面的DOS中断时用$做结束标记的。但大部分时候都是直接弄个类似
array db 5,6,8,?,8,?
count equ $-arr……
[/Quote]
格式输出。再一次打错。
MHBBCRCPJ 2011-02-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mhbbcrcpj 的回复:]
1.
DOS里面的实现都很复杂,个人感觉主要是让人理解输出不是个简单的事,如果在windows里面的话就简单多了,有printf那样的API,非常好用。
2.
用什么做结尾是个规定,标准或者说约定俗成。汇编里面的DOS中断时用$做结束标记的。但大部分时候都是直接弄个类似
array db 5,6,8,?,8,?
count equ $-array
的东西计算数组的长度。
如果愿意的话……
[/Quote]
2里面是格式输入,打错了。
还有3我感觉没有。不过初中的书上好像讲过一种简单的方法:
100以内的数,不能被2 3 5整除的数都是质数。
MHBBCRCPJ 2011-02-13
  • 打赏
  • 举报
回复
1.
DOS里面的实现都很复杂,个人感觉主要是让人理解输出不是个简单的事,如果在windows里面的话就简单多了,有printf那样的API,非常好用。
2.
用什么做结尾是个规定,标准或者说约定俗成。汇编里面的DOS中断时用$做结束标记的。但大部分时候都是直接弄个类似
array db 5,6,8,?,8,?
count equ $-array
的东西计算数组的长度。
如果愿意的话,在自己实现类似格式输入的东西的时候你可以自己将0作为结束标记,也可以是其他的任何值,我以前就用过#做结束标记。
3.
没有。

21,498

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧