cwd idiv cx mov ah,4ch int 21h code ends end start
实验内容三:从键盘读入一个字符串,以Enter结束,字符串不超过50个字符,并打印该字符串 data segment buffer db 50 db ? db 50 dup('$') cr db 0ah,0dh,\data ends
codes segment
assume cs:codes,ds:data start:
mov ax,data mov ds,ax
input: mov ah,10 lea dx,buffer int 21h lea dx,cr mov ah,9 int 21h output:
lea dx,buffer+2 mov ah,9 int 21h mov ah,4ch int 21h codes ends
end start
四. 实验结果(包括必要的截图)
实验内容一:
设x=156,y=10,z=220,v=2000,则sum1=0006h,sum2=0004h 在ax中看sum1,在dx中看sum2
实验内容二:
预先设置的数据求得平均数为76,在ax中查看,即ax=004Ch
实验内容三:
五. 实验体会
通过本实验,将课本上学到的算术运算类指令、变量定义伪指令、存储单元、DOS 0AH号功能(字符串输入)和DOS 09H功能(字符串输出)等在实验中实现。在实现过程中,解决遇到的问题(符号扩展、定义的数组存储空间地址、字符串如何输入输出等)后,对上述知识有了更深的了解,并掌握实现它。
实验三 汇编语言子程序设计(分支、子程序)
一. 实验目的
1、掌握分支和子程序结构和设计方法;
2、熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。 3、通过汇编语言了解高级语言的参数传递等知识。
二. 实验内容
1、BL中的只有一位为1。编写程序测试,并输出提示信息“The X Bit is 1”,要求:地址表和转移表。
2. 编写一个子程序计算z=f(x,y)=x*y+x-y(x,y,z有符号数内存数)。要求通过堆栈(寄存器、内存)传送所有参数。 3. 实践C?Asm的转换过程。 三. 实验过程和程序
实验内容一:BL中的只有一位为1。编写程序测试,并输出提示信息“The X Bit is 1” (1)转移表
;转移表,bl 左到右1-8位 DATAS SEGMENT
str1 db 'the 1 bit is 1',0dh,0ah,'$' str2 db 'the 2 bit is 1',0dh,0ah,'$' str3 db 'the 3 bit is 1',0dh,0ah,'$' str4 db 'the 4 bit is 1',0dh,0ah,'$' str5 db 'the 5 bit is 1',0dh,0ah,'$' str6 db 'the 6 bit is 1',0dh,0ah,'$' str7 db 'the 7 bit is 1',0dh,0ah,'$' str8 db 'the 8 bit is 1',0dh,0ah,'$' DATAS ENDS CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX mov bl,00010000b mov cx,8 mov si,0