微机原理与接口技术汇编子程序涉及

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

试验五汇编子程序设计

一、试验目的

(1)掌握汇编子程序设计的一般方法;

(2)掌握汇编子程序的调试方法;

(3)掌握递归子程序设计与调试方法。

二、输入输出子程序

1、十进制数输入子程序decibin

子程序名:decibin

子程序功能:用户输入十进制数放在BX中

入口参数:无

出口参数:BX存放输入的十进制数

受影响的寄存器:AX、BX、CX、DX和标志寄存器

注意:①用户输入字符‘0’~‘9’,当输入非法字符时结束输入,如回车;

②十进制数位数可以是1位、2位等,范围0~65535。

decibin proc near

mov bx , 0

newchar: mov ah , 1

int 21h

mov dl , al

sub al , 30h

jl exit1

cmp al , 9

jg exit1

cbw

xchg ax , bx

mov cx , 10

mul cx

xchg ax , bx

add bx , ax

jmp newchar

exit1: ret

decibin endp

2、十六进制数输入子程序hexibin

子程序名:hexibin

子程序功能:用户输入十六进制数放在BX中

入口参数:无

出口参数:bx存放输入的十六进制数

受影响的寄存器:ax、bx、cx和标志寄存器

注意:①用户输入0ah~0fh的数字时,输入大写字母‘A’~‘F’,小写字母‘a’~‘f’无效;

②子程序不能控制数的位数可能0位、1位、2位……等位数,如果输入位数大于4位,则以最新的4位十六进制数为准;

③输入字符可以按回车结束,当输入任何非法字符时也能结束数据输入。

hexibin proc near

mov bx , 0

newchar: mov ah , 1

int 21h

sub al , 30h

jl exit

cmp al , 10

jl add_to

sub al , 7

cmp al , 0ah

jl exit

cmp al , 10h

jge exit

add_to: mov cl , 4

shl bx , cl

mov ah , 0

add bx , ax

jmp newchar

exit: ret

hexibin endp

3、十进制数显示子程序binidec

子程序名:binidec

子程序功能:将bx寄存器存放的数以十进制的形式显示出来

入口参数:bx存放要显示的数

出口参数:无

受影响的寄存器:ax、bx、cx、dx和标志寄存器

binidec

dec_div

图5-1 子程序binidec模块层次图

binidec proc near

mov cx , 10000

call dec_div

mov cx , 1000

call dec_div

mov cx , 100

call dec_div

mov cx , 10

call dec_div

mov cx , 1

call dec_div

ret

binidec endp

dec_div proc near

mov ax , bx

mov dx , 0

div cx

mov bx , dx

mov dl , al

add dl , 30h

mov ah , 2

int 21h

ret

dec_div endp

4、十六进制数显示子程序binihex

子程序名:binihex

子程序功能:将di寄存器存放的数以十六进制的形式显示出来

入口参数:di存放要显示的数

出口参数:无

受影响的寄存器:ax、bx、cx、dx和标志寄存器

注意:显示十六进制数用到字符‘0’~‘9’和字符‘A’~‘F’,没有用到字符‘a’~‘f’。

binihex proc near

mov bx , 4

lp: mov cl , 4

rol di , cl

mov dx , di

and dl , 0fh

cmp dl , 9

jbe next

add dl , 07h

next: add dl , 30h

mov ah , 2

int 21h

dec bx

jnz lp

mov dl , 'h'

mov ah , 2

int 21h

ret

binihex endp

5、二进制数显示子程序binshow

子程序名:binshow

子程序功能:将bx寄存器存放的数以二进制的形式显示出来入口参数:bx存放要显示的数

出口参数:无

受影响的寄存器:ax、bx、cx、dx和标志寄存器

binshow proc near

mov ah , 2

mov cl , 16

Again: shl bx , 1

jnc next

mov dl , '1'

push ax

int 21h

pop ax

jmp mm

Next: mov dl , '0'

push ax

int 21h

pop ax

mm: dec cl

jnz again

ret

binshow endp

相关文档
最新文档