微机原理 通过键盘输入一个数字,求1加到该数的和,并将结果显示在屏幕上。发邮箱348175150@qq.com
作者&投稿:竺缸 (若有异议请与网页底部的电邮联系)
qq号+@qq.com
例如你的qq号码为12345,那么你的qq邮箱全名就是12345@qq.com。
如何查看自己的qq邮箱全名:
1、登录自己的qq,点击qq邮箱图标。
2、在打开的网页中,红色框中的内容就是你的qq邮箱的全名。
;==================================
ASSUME CS:C, DS:D
;----------------------------------
D SEGMENT
N DB 4, ?, 4 DUP(?)
SUM DW ?
MSG1 DB 'Input a number (1~361): $'
MSG2 DB 13, 10, 'Sum is : '
MSG3 DB ' .$'
MSG4 DB 13, 10, 'Input Error.', 13, 10, 36
D ENDS
;----------------------------------
C SEGMENT
BEG:
MOV AX, D
MOV DS, AX
;------------------------------
LEA DX, MSG1
MOV AH, 9
INT 21H
LEA DX, N
MOV AH, 10 ;输入字符串
INT 21H
;------------------------------
MOV SI, 0
MOV SUM, 0
MOV BX, 10
LP1:
CMP BYTE PTR N[SI + 2], 13
JE L1_E
CMP BYTE PTR N[SI + 2], '0'
JB ERROR
CMP BYTE PTR N[SI + 2], '9'
JA ERROR
MOV AX, SUM
MUL BX
MOV SUM, AX
MOV AL, N[SI + 2]
SUB AL, '0'
MOV AH, 0
ADD SUM, AX
INC SI
JMP LP1
;------------------------------
L1_E:
MOV CX, SUM
MOV SUM, 0
LP2:ADD SUM, CX
JC ERROR
LOOP LP2
;------------------------------
MOV AX, SUM
MOV BX, 10
MOV CX, 5
MOV SI, 0
LP3:MOV DX, 0
DIV BX
ADD DL, '0'
MOV MSG3[SI + 4], DL
DEC SI
CMP AX, 0
JZ DISP
LOOP LP3
;------------------------------
DISP:
LEA DX, MSG2
MOV AH, 9
INT 21H
JMP EXIT
ERROR:
LEA DX, MSG4
MOV AH, 9
INT 21H
;------------------------------
EXIT:
MOV AH, 4CH
INT 21H
;------------------------------
C ENDS
END BEG
;----------------------------------
执行后,显示如下:
c:\masm510>XX
Input a number (1~361): 0
Input Error.
c:\masm510>XX
Input a number (1~361): 7
Sum is : 28.
c:\masm510>XX
Input a number (1~361): 361
Sum is : 65341.
c:\masm510>
c:\masm510>XX
Input a number (1~361): 100
Sum is : 5050.
c:\masm510>XX
Input a number (1~361): 367
Input Error.
调试通过.
DATAS SEGMENT
N db 4
db 0
db 4 dup(0)
mes db 'Input Number:$'
buf db 5 dup(0)
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
lea dx,mes ;输入提示
mov ah,9
int 21h
lea dx,N ;输入
mov ah,10
int 21h
lea si,N ;把ascii码转换为10进制
mov cl,[si+1]
xor ch,ch
xor ax,ax
xor dx,dx
mov bx,10
s1:
mul bx
mov dl,[si+2]
mov dh,0
add ax,dx
sub ax,30h
inc si
xor dx,dx
loop s1
mov cx,ax
xor ax,ax
s2: ;累加
add ax,cx
loop s2
lea si,buf ;转换成ascii码
add si,4
xor cx,cx
mov bx,10
s3:
xor dx,dx
div bx
add dl,30h
mov [si],dl
dec si
inc cx
cmp ax,0
jnz s3
mov dl,0dh ;显示回车换行
mov ah,2
int 21h
mov dl,0ah
int 21h
inc si ;显示
s4:
mov ah,2
mov dl,[si]
int 21h
inc si
loop s4
mov ah,0
int 16h
MOV AH,4CH
INT 21H
CODES ENDS
END START
宁梅顺坦: 调试通过.DATAS SEGMENT N db 4 db 0 db 4 dup(0) mes db 'Input Number:$' buf db 5 dup(0) DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS ...
东陵区19335154022: 微机原理题,求大神详解 - ?
宁梅顺坦: TABLE为变量名,DW 为定义字变量,如23AD存放在两个相邻地百址中;根据小端方度式存放为AD,23,DA,56,66,DF,5D,66,7F,76...ENTRY为变量名,字变量,3h....OFFSET TABLE取TABLE的偏移地址为0,BX,ENTRY则bx为3,ADD相加后为3,即BX+3,[BX]为内内存地容址3,...........AD,23,DA,56,66,DF,5D,66,7F,76的地址为0,1,2,3,4...所以内存地址3存放的是56H
东陵区19335154022: 求一微机原理的汇编程序:要求从键盘中接收一个四位的16进制数,并在终端上显示与它等值的二进制数 - ?
宁梅顺坦: 程序段如下:BEGIN: MOV BX, 0 ;用于存放四位的16进制数 MOV CH, 4 MOV CL, 4 INPUT: SHL BX, CL ;将前面输入的数左移4位 MOV AH, 1 ;从键盘取数 INT 21H CMP AL, 30H ;<0吗?JB INPUT ;不是'0~F'的数重新输入 CMP AL, 39H ...
东陵区19335154022: 微机原理与接口技术题目:让用户输入一个数字,然后显示输入数字的ASCII码:如果输入的是1,则 - ?
宁梅顺坦: 数字的ASC码就是:数字+30H ...(前面省略) MOV AH,08HINT 21H ;获得输入的数放在AL,里面存放的就是该数的ASC码,比如32H PUSH AL AND AL,0FH ;取得低4位,放入BL中,BL=02H MOV BL,AL POP AL ROR AL,4 ;循环右移四...
东陵区19335154022: 高分!微机原理程序设计(十六进制数相加) - ?
宁梅顺坦: // Console16位数相加.cpp : 定义控制台应用程序的入口点.//#include "stdafx.h" int ChangeSixToTen(char source) { if(source >= 'a' && source <='f') return (10+ source - 'a'); else if(source >= 'A' && source <= 'F') return (10 + source - 'A'); else if(...
东陵区19335154022: 急求微机原理大神帮助? - ?
宁梅顺坦: ary db 12h,34h,56h,94h,6ah mov cl ,0fh lea bx,ary miv al,[bx+2] ----AL = 56H shl al,cl-------AL 左移15位 ! ----AL 仅有八位,移动后,剩下的,就是 00H.
东陵区19335154022: 微机原理!! 关于8253 - ?
宁梅顺坦: 1.方式0:计数结束则中断 2.方式1:单脉冲发生器 即可编程单脉冲发生器 3.方式2:速率波发生器 4.方式3:方波发生器 5.方式4:软件触发方式计数 6.方式5:硬件触发方式计数 详细资料请参阅:http://www.fjtu.com.cn/fjnu/courseware/0339/...
东陵区19335154022: 我们要做微机原理课程设计,判断一个数是不是质数,求高手指点啊,谢谢 - ?
宁梅顺坦: 假如一个数N是合数,它有一个约数a,a*b=N 则a、b两个数中必有一个大于或等于根号N,一个小于或等于根号N.因此,只要小于或等于根号N的数(1除外)不能整除N,则N一定是素数.
东陵区19335154022: 微机原理键盘输入字符串,将数字和字母分离 - ?
宁梅顺坦: 大概思路就是把键盘输入的ASC码放入一个寄存器里,然后把这个寄存器中的内容跟字母和数字的ASC码范围比较即可~ 可以编写如果ASC码不是停止符就重复运行的语句来实现你说的输入字符串~ 我觉得思路比程序更重要,因为编程主要就是要培养思想,而不是拿别人的~
东陵区19335154022: 微机原理程序汇编语言 鸡兔同笼,已知其总头数为H,总脚数为F,用键盘输入 - ?
宁梅顺坦: data segmentH dw 0F dw 0ji dw 0tu dw 0msg0 db 0dh,0ah,'Input Total Head Number:$'msg1 db 0dh,0ah,'Input Total Feet Number:$'msg2 db 0dh,0ah,'Hen [N]:$'msg3 db 0dh,0ah,'Rabbit [N]:$' msg9 db 0dh,0ah,'Input error!$'flag db 0 data...