由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请教几个汇编语言的问题
相关主题
关于汇编语言移动光标的问题,请大家帮我看看问几句汇编指令(assembly language)
学了c++,java,.net,还要学汇编语言吗?C所以要没落啊,太低级了
解释一下吧Re: C语言的前途《汇编语言程序设计》第6版[PDF]
化学在读博士转计算机,求建议。 (转载)只会 java, c# 的小孩伤不起呀
C++ Q 108: swap还有人用汇编语言写程序么
mysql写入数据之前要不要lock table?为啥C可以当汇编用,JAVA就不可以呢?
汇编的mov指令谁还记得这个
什么叫reverse engineer 一个软件?How to become a better programmer
相关话题的讨论汇总
话题: ax话题: bp话题: stack话题: 汇编语言话题: 8086
进入Programming版参与讨论
1 (共1页)
h*******3
发帖数: 3775
1
最近在学汇编语言,但是到了后面越来越不懂了
看到的几个题,像请教下大家。
谢谢啦。
1.Write an 8086 procedure which will accept three 16-bit integer arguments (
passed on the stack) and will return their sum in the AX register.
我写的答案是:
push bp
mov bp,sp
mov ax,[bp+4]
add ax,[bp+6]
pop bp
ret 4
问问大家这个对吗?
还有两个题。
2.Write an 8086 procedure which will receive a 16-bit integer as input
parameter on the stack, swaps the high byte and low byte of the word, and
return the new value in ax。
3.Write an 8086 subprogram that is passed on the stack the address of an
array of 16 bit integer values, and the number of values in the array. The
function will add up the values in the array and return the sum in AX.
2,和3都觉得做不出来。
大家可以帮帮忙吗?
谢谢啦
t****t
发帖数: 6806
2
当然不对啦, 你自己不会试试的吗?
那个寄存器叫bp, 不叫bq...
说了叫你加三个整数, 你只加了两个, 还加的是第一个和第三个跳着来的
看你ret 4是想要弹出parameter? 可是又数错了...
怎么这年代了还学16位的汇编? 32位都要吃不住了...

(

【在 h*******3 的大作中提到】
: 最近在学汇编语言,但是到了后面越来越不懂了
: 看到的几个题,像请教下大家。
: 谢谢啦。
: 1.Write an 8086 procedure which will accept three 16-bit integer arguments (
: passed on the stack) and will return their sum in the AX register.
: 我写的答案是:
: push bp
: mov bp,sp
: mov ax,[bp+4]
: add ax,[bp+6]

p*********t
发帖数: 2690
3
汇编语言挺容易的,买本清华大学的教材就好了。

(

【在 h*******3 的大作中提到】
: 最近在学汇编语言,但是到了后面越来越不懂了
: 看到的几个题,像请教下大家。
: 谢谢啦。
: 1.Write an 8086 procedure which will accept three 16-bit integer arguments (
: passed on the stack) and will return their sum in the AX register.
: 我写的答案是:
: push bp
: mov bp,sp
: mov ax,[bp+4]
: add ax,[bp+6]

X****r
发帖数: 3557
4
楼主的这个贴让我感觉回到了二十年前…
再过一会儿是不是可以看到int 21h了:-D

【在 t****t 的大作中提到】
: 当然不对啦, 你自己不会试试的吗?
: 那个寄存器叫bp, 不叫bq...
: 说了叫你加三个整数, 你只加了两个, 还加的是第一个和第三个跳着来的
: 看你ret 4是想要弹出parameter? 可是又数错了...
: 怎么这年代了还学16位的汇编? 32位都要吃不住了...
:
: (

h*******3
发帖数: 3775
5

有本教程,看了点,还是不好懂啊。

【在 p*********t 的大作中提到】
: 汇编语言挺容易的,买本清华大学的教材就好了。
:
: (

p*********t
发帖数: 2690
6
要中断了。

【在 X****r 的大作中提到】
: 楼主的这个贴让我感觉回到了二十年前…
: 再过一会儿是不是可以看到int 21h了:-D

X****r
发帖数: 3557
7
你学这个有什么具体的用途吗?现在一般很少有需要16位x86汇编的机会。

【在 h*******3 的大作中提到】
:
: 有本教程,看了点,还是不好懂啊。

h*******3
发帖数: 3775
8

没办法,学校开的课。
老师讲的我糊里糊涂的,下来自己看看。
很多东西都不会。

【在 X****r 的大作中提到】
: 你学这个有什么具体的用途吗?现在一般很少有需要16位x86汇编的机会。
h*******3
发帖数: 3775
9

谢谢你的提醒,刚才打错了,把p打成了q。
我只会加两个整数,三个整数咋加呢?

【在 t****t 的大作中提到】
: 当然不对啦, 你自己不会试试的吗?
: 那个寄存器叫bp, 不叫bq...
: 说了叫你加三个整数, 你只加了两个, 还加的是第一个和第三个跳着来的
: 看你ret 4是想要弹出parameter? 可是又数错了...
: 怎么这年代了还学16位的汇编? 32位都要吃不住了...
:
: (

h*******3
发帖数: 3775
10

int 10h
int 16h
int 21h
都有。
头疼啊。

【在 X****r 的大作中提到】
: 楼主的这个贴让我感觉回到了二十年前…
: 再过一会儿是不是可以看到int 21h了:-D

相关主题
mysql写入数据之前要不要lock table?问几句汇编指令(assembly language)
汇编的mov指令C所以要没落啊,太低级了
什么叫reverse engineer 一个软件?《汇编语言程序设计》第6版[PDF]
进入Programming版参与讨论
X****r
发帖数: 3557
11
…你不是来挖坑的吧?
你已经有了两数和,再加上第三个数不就成了?

【在 h*******3 的大作中提到】
:
: int 10h
: int 16h
: int 21h
: 都有。
: 头疼啊。

h*******3
发帖数: 3775
12

道理我也明白啊,但是不知道咋样往出写么。
挖坑我就到水版去了。

【在 X****r 的大作中提到】
: …你不是来挖坑的吧?
: 你已经有了两数和,再加上第三个数不就成了?

t****t
发帖数: 6806
13
什么烂课, 退了吧. 就算学ARM也比这个强得多啊.

【在 h*******3 的大作中提到】
:
: 道理我也明白啊,但是不知道咋样往出写么。
: 挖坑我就到水版去了。

t****t
发帖数: 6806
14
好吧, 我也觉得是坑了, 白跳了.

【在 h*******3 的大作中提到】
:
: 道理我也明白啊,但是不知道咋样往出写么。
: 挖坑我就到水版去了。

h*******3
发帖数: 3775
15

学校开的,而且是必修课,不上也不行啊。

【在 t****t 的大作中提到】
: 什么烂课, 退了吧. 就算学ARM也比这个强得多啊.
h*******3
发帖数: 3775
16

我只是问几个问题,汇编我是真学的烂。啥都没学会。
上面的那个如果加3个整数的话咋加呢?

【在 t****t 的大作中提到】
: 好吧, 我也觉得是坑了, 白跳了.
X****r
发帖数: 3557
17
mov ax,[bp+4]
add ax,[bp+6]
add ax,[bp+8]

【在 h*******3 的大作中提到】
:
: 我只是问几个问题,汇编我是真学的烂。啥都没学会。
: 上面的那个如果加3个整数的话咋加呢?

h*******3
发帖数: 3775
18

push bp
mov bp,sp
mov ax,[bp+4]
add ax,[bp+6]
add ax,[bp+8]
pop bp
ret 4
是不是这样子呢?
ret 4是用来做啥的呢?
谢谢你了

【在 X****r 的大作中提到】
: mov ax,[bp+4]
: add ax,[bp+6]
: add ax,[bp+8]

t****t
发帖数: 6806
19
这样的话你去问教授或者TA吧...

【在 h*******3 的大作中提到】
:
: push bp
: mov bp,sp
: mov ax,[bp+4]
: add ax,[bp+6]
: add ax,[bp+8]
: pop bp
: ret 4
: 是不是这样子呢?
: ret 4是用来做啥的呢?

X****r
发帖数: 3557
20
"ret 4" means to pop up 4 bytes form the stack before returning to the
caller
(i.e. popping up IP from the stack). However in your case there are 3 16-bit
parameters, so you should have "ret 6".
Note that this assumes callee clean up the stack.

【在 h*******3 的大作中提到】
:
: push bp
: mov bp,sp
: mov ax,[bp+4]
: add ax,[bp+6]
: add ax,[bp+8]
: pop bp
: ret 4
: 是不是这样子呢?
: ret 4是用来做啥的呢?

相关主题
只会 java, c# 的小孩伤不起呀谁还记得这个
还有人用汇编语言写程序么How to become a better programmer
为啥C可以当汇编用,JAVA就不可以呢?C++和Java
进入Programming版参与讨论
h*******3
发帖数: 3775
21

教授把这当成作业布置给我们,我要是就这样问他,他应该都不会和我说的。
而且教这门课的只有他一个老师,他讲的我经常听不懂。
TA只教Java,不会教汇编的。

【在 t****t 的大作中提到】
: 这样的话你去问教授或者TA吧...
h*******3
发帖数: 3775
22

bit
这下子明白了,真的谢谢你了。
能不能帮我指点下第二题和第三题呢?

【在 X****r 的大作中提到】
: "ret 4" means to pop up 4 bytes form the stack before returning to the
: caller
: (i.e. popping up IP from the stack). However in your case there are 3 16-bit
: parameters, so you should have "ret 6".
: Note that this assumes callee clean up the stack.

t****t
发帖数: 6806
23
似乎清华计算机语言类的教材质量都很一般. 以老谭的C语言为代表, 毒害了一整代的
青少年.

【在 p*********t 的大作中提到】
: 汇编语言挺容易的,买本清华大学的教材就好了。
:
: (

t****t
发帖数: 6806
24
太悲催了, 换个学校吧.

【在 h*******3 的大作中提到】
:
: bit
: 这下子明白了,真的谢谢你了。
: 能不能帮我指点下第二题和第三题呢?

h*******3
发帖数: 3775
25

哎,学费便宜,先读着再说吧。
能不能指点下我的第二题和第三题呢?
谢谢啦。

【在 t****t 的大作中提到】
: 太悲催了, 换个学校吧.
p*********t
发帖数: 2690
26
还好了,c本来不难,不过他讲得那么琐碎,婆婆妈妈地,一个小问题可以讲一页纸。

【在 t****t 的大作中提到】
: 似乎清华计算机语言类的教材质量都很一般. 以老谭的C语言为代表, 毒害了一整代的
: 青少年.

p*********t
发帖数: 2690
27
找个中文版教材读,比读英文版的容易得多。

【在 h*******3 的大作中提到】
:
: 哎,学费便宜,先读着再说吧。
: 能不能指点下我的第二题和第三题呢?
: 谢谢啦。

t****t
发帖数: 6806
28
no, 他该讲的不讲, 不该讲的讲了一堆, 我没见过比这个更差的C语言教材了.

【在 p*********t 的大作中提到】
: 还好了,c本来不难,不过他讲得那么琐碎,婆婆妈妈地,一个小问题可以讲一页纸。
p*********t
发帖数: 2690
29
汇编语言也就是做操作系统有点用,大部分是用C写的操作系统。学这个还不如学
objective-c给iphone编游戏呢。

【在 h*******3 的大作中提到】
:
: 哎,学费便宜,先读着再说吧。
: 能不能指点下我的第二题和第三题呢?
: 谢谢啦。

t****t
发帖数: 6806
30
你写了我可以告诉你有什么问题, 不过我是绝对不会写的.

【在 h*******3 的大作中提到】
:
: 哎,学费便宜,先读着再说吧。
: 能不能指点下我的第二题和第三题呢?
: 谢谢啦。

相关主题
C语言高级就高级在指针上学了c++,java,.net,还要学汇编语言吗?
谭浩强的c c++程序设计对初学者危害有多大解释一下吧Re: C语言的前途
关于汇编语言移动光标的问题,请大家帮我看看化学在读博士转计算机,求建议。 (转载)
进入Programming版参与讨论
h*******3
发帖数: 3775
31

我读了读王爽的汇编语言。
但是以前从来没接触过寄存器啥的,觉得很迷惑。
这个学期马上就要完了,我先把考试给应付过去,暑假好好学学。
汇编语言课一共有两节,我现在上的是第一节,还有一节得上。

【在 p*********t 的大作中提到】
: 找个中文版教材读,比读英文版的容易得多。
h*******3
发帖数: 3775
32

好的,我去图书馆研究一下。
谢谢你了。

【在 t****t 的大作中提到】
: 你写了我可以告诉你有什么问题, 不过我是绝对不会写的.
p*********t
发帖数: 2690
33
寄存器就一小硬件,你没上过逻辑设计做实验?

【在 h*******3 的大作中提到】
:
: 好的,我去图书馆研究一下。
: 谢谢你了。

h*******3
发帖数: 3775
34

没有,从来都没

【在 p*********t 的大作中提到】
: 寄存器就一小硬件,你没上过逻辑设计做实验?
d*****l
发帖数: 8441
35
Mac机上还在使用终端服务程序的吧。
1 (共1页)
进入Programming版参与讨论
相关主题
How to become a better programmerC++ Q 108: swap
C++和Javamysql写入数据之前要不要lock table?
C语言高级就高级在指针上汇编的mov指令
谭浩强的c c++程序设计对初学者危害有多大什么叫reverse engineer 一个软件?
关于汇编语言移动光标的问题,请大家帮我看看问几句汇编指令(assembly language)
学了c++,java,.net,还要学汇编语言吗?C所以要没落啊,太低级了
解释一下吧Re: C语言的前途《汇编语言程序设计》第6版[PDF]
化学在读博士转计算机,求建议。 (转载)只会 java, c# 的小孩伤不起呀
相关话题的讨论汇总
话题: ax话题: bp话题: stack话题: 汇编语言话题: 8086