汇编考试的一些问题:

题目都是要求排列或者整理数据段的一些内容,为什么一开始都要PUSH DS;XOR AX AX;PUSH AX啊?DS和AX入栈?有什么用啊?

汇编语言编写的程序,是在 DOS 环境下运行的。
运行结束后,还应该返回 DOS。
在程序的一开始,写入这些指令,目的是为了使用 RET 指令退出程序,返回 DOS。
但是,现在多用 MOV AH, 4CH INT 21H 退出程序,上述代码,就没有用了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-15
为了返回dos,指令含义是确定基地址
在程序的一开始,写入这些指令,目的是为了使用 RET 指令退出程序,返回 DOS。
但是,现在多用 MOV AH, 4CH INT 21H 退出程序,上述代码,就没有用了。
第2个回答  2011-07-15
一开始都要PUSH DS那是保护现场 就是先进行压栈防止DS的内容被修改 最后还会有一句POP出栈
XOR AX AX是进行对AX最高位清零的作用 而PUSH AX 与PUSH DS作用一样
第3个回答  2011-07-15
保存现场数据。 push ds 这个是数据段 xor ax,ax是把ax清零。然后push ax 。
例如:我现在运行的的程序的数据保存在ds里面的某个位置,这个时候我要执行你的程序,但是我的程序没有执行完毕啊?我11+23我还没计算完啊!! 这个时候我把数据地址保存起来,把ax置0,因为ax是最常用的寄存器。如果数据不清空会影响其他的程序。 当你的程序执行完,我可以继续执行我的这个程序。

学汇编遇到的一点问题:
1、编码区间和地址的关系怎么计算?00000H~0FFFFFH这个数据怎么用16^6?(16位CPU内部有20根地址线,其编码区间为:00000H~0FFFFFH,所以,它可直接访问的物理空间为1M(2^20)字节。)00000H~0FFFFFH高中的概率,一共有6位十六进制,没一位有16种方式,所以就是16^6 就好像0000-9999可以表示10^4...

汇编的问题
(1) 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 0010H 到 1000FH 。方法:偏移地址的范围是0h~0FFFFh,你加上段地址就是答案。(2) 有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为 1001H ,最大为 2000H 。当...

汇编问题
1. 段地址*16+偏移地址 2. 段地址*10H+偏移地址 16进制数后面要加H 10H=16 2的4次方等于16,所以--> 4个2进制位可以用 1个16进制位表示 2000H*16,就是2000H向左移动4个2进制位=20000H 2000H*10H,就是2000H向左移动1个16进制位=20000H 这两个算法是等同的。2000H*16H才等于2C000...

汇编考试的一些问题:
汇编语言编写的程序,是在 DOS 环境下运行的。运行结束后,还应该返回 DOS。在程序的一开始,写入这些指令,目的是为了使用 RET 指令退出程序,返回 DOS。但是,现在多用 MOV AH, 4CH INT 21H 退出程序,上述代码,就没有用了。

汇编语言指令的一些小问题
两位数,可以理解成,高位、低位。两个“两位数”相加,先加低位,再加高位(还要考虑低位的进位)。--- 16 位的计算机,每次,所能处理的一个数,只是两个字节。表示较大的数,就得用两部分,高位、低位,各两个字节。书上说的四个字节,就是一个较大的数字。两个“四字节数”相加时,要先...

汇编语言问题
1、不明白题目的意思 2、填充64K区域,32*1024就是32K,STOSW执行两字节填充,所以32K*2=64K 3、立即数可以用十进制表示,+35和+35h都是合法的,只不过+35=+23h。你说的哪几种写法都是可以的,但不确定是否任何编译器都能过。

汇编语言基础问题
1、不同的CPU所具有的地址线数量是不一样的,像8086\/88只有20根地址线(即宽度为20),它的最高寻址为:2的20次方(即1048575B,寻址能力为1MB)。同理,对于8K来说,相当于8192B=2的13次方。所以它有13根地址线(即宽度为13)。2、一个存储单元为8Bit。而1KB=1024B,它的存储单元个数就...

汇编问题
先说一点,你指令书写有错,中间漏掉了一个逗号。正确的指令是 mov ds:[0] , al 这条指令的含义解释如下:mov 这是指令操作码,表示要进行数据传送操作;ds:[0] 这是目的操作数,也就是数据传送的目的地。ds是数据段段寄存器,[0] 表示内存单元的段内偏移地址是 0 al 是8位的累加器,在...

初学汇编,请教几个问题
1.A 等于 pop + imm是错误的,pop 后面没有直接跟常数的用法 B和C是相对基址加变址寻址方式,bx\/bp + si.\/di + offset的方式,所以C是对的。D。AH 是8位的POP后面跟的是16位的,所以错,综合只有C是对的 2.A和C同样是相对基址加变址寻址方式,所以A是对的,其它是错的。3.AAA不关AH...

一个关于汇编的小问题
十进制可省略后缀。十六进制,若最高位为A~F,须在前面为上数字0,以表明是数值数据。———(AX)=0FAF4H=-1292D,要么这个十六进制是存放在AX里的地址,这个十六进制地址对应的值是-1292D,会不会呢?CF,OF这种标志位的值是根据当次运算自己改变的。CF是进位标志,有进位就置为“1”OF是溢出...

相似回答
大家正在搜