8088汇编上机题

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

;1、从键盘输入一个4位的十六进制数,统计该数所对应的二进制数中所包含“1”的个数,并输出。

ASSUME CS:CODE,DS:DATA,SS:STACK

DATA SEGMENT

TEMP DW ?

MSG1 DB 13,10,"PLEASE INPUT A HEX NUMBER : $"

MSG2 DB 10,13,"THE HEX NUMBER HAVE $"

ANS DB " 1 $"

ERR DB 'BKADBKS'

H16 DW 16

DATA ENDS

STACK SEGMENT

DB 128 DUP (0)

TOS DB '$'

STACK ENDS

CODE SEGMENT

; 十六进制转换十进制

CONVERT PROC

MOV BL,10

MOV CX,0

L:

DIV BL

ADD AH,30H

INC CX

PUSH AX

MOV AH,0

CMP AL,0

JNZ L

O:

POP DX

MOV DL,DH

MOV DH,0

MOV AH,2

INT 21H

LOOP O

RET

CONVERT ENDP

;统计AX中1的个数,结果在BX中,用循环位移实现

COUNT PROC FAR

MOV CX,16

L3:

SHR AX,1

JNC P1

INC BL

P1:

LOOP L3

RET

COUNT ENDP

START:

MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

MOV SP,OFFSET TOS

MOV DX,OFFSET MSG1

MOV AH,9

INT 21H

MOV BX,0

MOV CX,4

GET:

MOV AH,1

INT 21H

MOV AH,0

CMP AL,'A'

JB CONT

SUB AL,7

CONT:

SUB AL,30H

PUSH AX

MOV AX,BX

MUL H16

POP BX

ADD BX,AX

LOOP GET

MOV AX,BX

CALL COUNT NEXT:

MOV DX,OFFSET MSG2

INT 21H

MOV AX,BX

CALL CONVERT

MOV DX,OFFSET ANS

MOV AH,9

INT 21H

EXIT:

MOV AX,4C00H

INT 21H

CODE ENDS

END START

;2、从键盘输入10个2位以内的数(例如:1,3,54,33,2,67,12,23,23,89 ), ;输出其中最大的数和最小的数。

ASSUME CS:CODE,DS:DATA,SS:STACK

DATA SEGMENT

MSG1 DB 'PELESA INPUT 10 NUM :$'

MSG2 DB 13,10,'THE MAX NUM IS $'

MSG3 DB 10,13,'THE MIN NUM IS $'

MAX DB 0

MIN DB 255

H10 DB 10

DATA ENDS

STACK SEGMENT

DB 128 DUP (0)

TOS DB '$'

STACK ENDS

CODE SEGMENT

;十进制输出函数

CONVERT PROC

MOV BL,10

MOV CX,0

L:

DIV BL

INC CX

PUSH AX

MOV AH,0

CMP AL,0

JNZ L

O:

POP DX

MOV DL,DH

MOV DH,0

MOV AH,2

INT 21H

LOOP O

RET

CONVERT ENDP

; 把输入的数与max和min比较,大小比较后选择换或不换START:

MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

MOV SP,OFFSET TOS

LEA DX,MSG1

MOV AH,9

INT 21H

MOV BX,0

GET:

MOV AH,1

INT 21H

CMP AL,13

JE OVER

CMP AL,' '

JE GETONE

SUB AL,30H

MOV DL,AL

MOV AL,BL

MUL H10

ADD AL,DL

MOV BL,AL

JMP GET

GETONE:

CMP BL,MAX

相关文档
最新文档