1,编程实现求S=(X²+Y²)/Z的值,并将结果放入RESULT单元。
DATA SEGMENT
X DB 2
Y DB 9
Z DB 6
RESULT DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX;数据段
MOV AL,X
MOV BL,AL
MUL BL ;X的平方
MOV DX,AX;保存结果
MOV AL,Y
MOV BL,AL
MUL BL ;Y的平方
ADD AX,DX
MOV BL,Z
DIV BL
MOV RESULT,AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
2, 编写程序:将键盘输入的小写字母转换成大写字母并输出显示,直到输入字符'#'结束。
如果输入的不是小写字母时要显示错误提示'PLEASE INPUT AGAIN!'。(3.asm)
用到的几号功能:01H 键盘输入
"#" 判断是不是#号
09H a-z以外的字母就显示字符串
02H显示对应的大写字母
DATA SEGMENT
STR DB 'PLEASE INPUT AGAIN!',0DH,0AH, $
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX;数据段
L1:
MOV AH,1
INT 21H;字符串ASAII码保存在AL
CMP AL,'#'
JZ EXIT
CMP AL,'a'
JB Disp ;<a显示字符串
CMP AL,'z'
JA Disp ;不是小写字母以外的字母顺序执行
SUB AL,20H ;42H是B,b是62H
MOV DL,AL
MOV AH,2
INT 21H
JMP L1
Disp:
LEA DX,STR
MOV AH,9 ;9号功能显示字符串
INT 21H
JMP L1
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START
3, 已知A,B,C,D,S均为无符号字节变量,实现(A*B+C)/D-100放在S中。
解析:A*B 字节*字节=字,然后字+字节C不行,需要给C进行字扩展CBW。字+字=字,然后字/字
节,商放AL。字节-字节可以。结果给字节S。
4,用汇编语言编写程序,从外设71H读取一个数M,判断其值是否在10和20之间,如果M≥20,则
送0FFH给外设73H;如果M<10,则送00H给外设73H;如果10≤M<20,