当前位置:文档之家› 简单程序设计

简单程序设计

简单程序设计
1.两位BCD编码转换为二进制码
BCD编码,用于表示十进制数,十进制各位上的数字0~9分别用对应的四位二进制数表示,两位BCD编码即8位二进制数,一个字节。

将BCD编码转换为二进制,实际上就是计算其表示的数据大小,而BCD编码为十进制,因此应按照十进制进行计算:B=D0*100+D1*101+D2*102+…+D n*10n
由于还没有学习其他程序结构,因此这里假设对两位BCD 编码进行转换,即只考虑D0和D1 ,如果对多位BCD编码进行转换,可以使用后续学到的循环结构。

参考程序:
DATA SEGMENT
BCDD DB 56H
BD DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV AL, BCDD
MOV AH, AL
AND AL, 0FH
AND AH, 0F0H
MOV CL, 4
SHR AH, CL
SHL AH, 1
MOV DL, AH 图4 两位BCD码转换为二进制数
SHL AH, 1
SHL AH, 1
ADD AH, AL
MOV BD, AH
MOV AH, 4CH ;在DOS环境或者命令行窗口运行汇编程序时,程序的最
INT 21H ;后需要进行DOS功能调用4CH,以返回操作系统。

CODE ENDS
END START
2.简单的运算程序
以下举例说明如何编程实现简单的算术运算,因为较复杂的算术运算往往需要使用循环和分支程序结构。

编写程序实现((B1+B2-B3)/B4*B5)2—〉W,Bi为字节型变量,W为字变量,不考虑溢出问题。

参考程序如下:
DATA SEGMENT
B1 DB 12H
B2 DB 0CH
B3 DB 1FH
B4 DB 03H
B5 DB 4AH
W DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV AL, B1
ADD AL, B2
SUB AL, B3
XOR AH,AH
DIV B4
MUL B5
MUL AX
MOV W, AX
MOV AH, 4CH
INT 21H
CODE ENDS
END START
提示:对于初次编写汇编程序的大家,编程时应注意的问题:
(1) 语法问题,应注意指令格式对各操作数寻址方式的要求。

(2) 语法问题,应注意操作数类型的匹配。

(3) 语法问题,伪指令和实指令都必须包含在段定义和段结束之间的段。

(4) 逻辑问题,ASSUME不能自动加载数据段段地址,因此代码段部分,首先需要执行数据段段地址加载指令段。

(5) 逻辑问题,在编程过程中,有时需要对反复使用的寄存器内容进行转存,否则其内容有可能被破坏,而导致错误的运行结果。

编程过程中,请大家根据自己遇到的问题,不断的总结整理,积累编程经验,这对于提高编程能力有很大的帮助。

相关主题