什么是汇编程序问题

3、在CPU寄存器组中数据寄存器主偠是指()、()、()、()。4、假设(DS)=3000H(SI)=0040H,(30054H)=4336H则指令SUB[SI+14H],0136H执行后(30054H)=()... 3、在CPU寄存器组中,数据寄存器主要是指( )、( )、( )、( )
5、结构化程序设计时,采用的基本结构有( )、( )、( )
7、设机器的字长是16,-3的补码和-129的补码分别为( )
8、CPU对存儲器地址采用分段管理方法,每段大小可达( )字节
9、下面( )指令是错误的。
11、汇编过程会把asm的汇编源程序汇编成( )格式的文件
13、什么是汇编程序的主要功能是什么?
14、CPU有哪些基本寻址方式
15、CPU主要有哪几类指令?
16、简述伪指令的作用
17、汇编语言程序设计的一般步骤是什么?
18、简述循环程序的组成部分
19、编写一个程序段实现通过端口21H采集一个8位数据,并且把该数据传送给端口1200H
20、如(AX)=0012H,(BX)=0034H试编写程序段把它们装配在一起形成(AX)=1234H。
21、试编制一个程序把BX寄存器内的二进制数用十六进制数的形式在屏幕上显示出来
 编程语言彙编语言
3、在CPU寄存器组中,数据寄存器主要是指
( AX )、( BX )、( CX )、( DX )
4、假设(DS)=3000H,(SI)=0040H(30054H)=4336H,
则指令 SUB [SI+14H]0136H
执行后,(30054H)=( 4200H )
5、结構化程序设计时,采用的基本结构有(顺序)、(分支)、(循环)
7、设机器的字长是16,-3的补码和-129的补码分别为(FFFDH、FF7FH)
8、CPU对存储器地址采用分段管理方法,每段大小可达(64K)字节
9、下面( )指令是错误的。
A、CMP 15BX
10、DATA DW ‘1234’占用了( )个字节。--这是非法指令
11、汇编过程會把asm的汇编源程序汇编成( OBJ )格式的文件
12、已知SP=2110H,执行POP AX后SP寄存器的值是( 2112H )。
13、什么是汇编程序的主要功能是什么
把用助记符写的彙编语言指令,转换成 CPU 能够识别的机器码
14、CPU有哪些基本寻址方式?
立即、直接、寄存器、寄存器间接、寄存器相对 基址加变址、基址加變址相对
15、CPU主要有哪几类指令?
不同教材有不同的说法
一般是:
传送、算术运算、位操作(即逻辑运算)、串操作、控制转移、处理器控淛。
16、简述伪指令的作用
伪指令用于控制什么是汇编程序,指示它如何进行汇编
17、汇编语言程序设计的一般步骤是什么?
根据要求確定算法;
根据算法,编写程序;
编译、连接、运行;
排错修改;
最后,完成
18、简述循环程序的组成部分。
已知循环次数:
初始化次數计数器;
循环体;
次数减一
次数判断,不为零就跳转去再次执行循环体
--------
已知结束条件:
循环体;
判断退出循环的条件,不满足就跳转去再次执行循环体
19、编写一个程序段实现通过端口21H采集一个8位数据,
并且把该数据传送给端口1200H
IN AL, 21H
MOV DX, 1200H
OUT DX, AL
END
20、如(AX)=0012H,(BX)=0034H试編写程序段
把它们装配在一起形成(AX)=1234H。
MOV AH, AL
MOV AL, BL
END
21、试编制一个程序把BX寄存器内的二进制数用十六进制数
的形式在屏幕上显示出来
OUT_HEX PROC
MOV CX, 0404H
B1: ROL BX, CL
MOV DL, BL
AND DL, 0FH
CMP DL, 0AH
JB B2
ADD DL, 07H
B2: ADD DL, 30H
MOV AH, 2
INT 21H ;显示到屏幕
DEC CH
JNZ B1 ;处悝4次
RET
OUT_HEX ENDP

5 顺序结构 分支结构 循环结构

13 把汇编语言源程序翻译成目标程序

14 立即寻址 寄存器寻址 直接寻址 寄存器间接寻址 寄存器相对寻址 基址加变址寻址 相对基址加变址寻址

15 数据传送 算术运算 逻辑运算 串操作 程序控制 处理器控制

16 用于告诉什么是汇编程序如何进行汇编的指令

17 1、 分析问題,抽象出描述问题的数据模型 2、 确定问题的算法思想 3、 画出流程图或结构图 4、 分配存储器和工作单元(寄存器) 5、 逐条编写程序 6、 静态檢查上机调试

18 初始化部分 循环体部分 调整部分 控制部分

}

双操作数指令两个操作数都是存储器操作数啦

另外,你把那三块数据分别定义个符号名多好处理只接用lea指令取得偏移地址就行了,就不用数数据个数什么54h0a7h的。

}
若(SP)=25H(PC)=2345H,标号LABEL所在的地址為3456H问执行长调用指令“LCALL LABEL”后,堆栈指针和堆栈的内容发生什么样变化PC的值等于什么?
RET到底怎么用它是返回指令,返到哪儿去了像丅面的例子中,执行RET后返到哪儿去了呢主要是说说这个哈?
假设A>10时就转到LAB处去。程序如下:
RET(此时又返回到哪儿去了??????)
假设A=10时CJNE不转迻,顺序执行则执行RET,此时返回到哪儿去了???

像下面的例子中执行RET后返到哪儿去了呢,

假设A>10时就转到LAB处去程序如下:

RET(此时又返回到哪儿去了??????)

假设A=10时,CJNE不转移顺序执行,则执行RET

此时返回到哪儿去了???

-----------

程序中,有两個 RET

无论执行哪一个,都是返回到调用这个子程序

的 LCALL 指令的下一条。

即接着执行 LCALL 下面的指令

-----------

做为一个子程序,它就是公用的

它就可以,被不同位置的 LCALL 所调用

因此,RET就会返回到不同的地址。

具体是返回到何处就要看 LCALL 指令位于何处。

在调用孓程序时使用LCALL指令时,单片机会自动将当前PC地址值压入堆栈当执行到RET指令的时候,又会将堆栈里的存储的PC地址值读出

没有使用LCALL指令,而使用了RET指令单片机依旧会将当前堆栈的数据当做PC值取出,此时的程序跑到哪里不知道了

你还可以借此原理巧用RET指令,在执行跳转湔将标号地址压入堆栈然后执行RET指令,就可以实现跳转了至于怎么跳回就看你怎么设置堆栈或者子程序了。

没搞明白你的回答那两個题我看书是做出来了的,我主要是想问一下下面那个程序的问题RET执行后又跑到哪儿去了。

本回答被提问者和网友采纳

}

我要回帖

更多关于 什么是汇编程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信