汇编第四章作业

《微机原理与接口技术》(第四版)周何琴

  1. 编程实现:在显示器上显示全部标准和扩展ASCII码(其编码为00~FFH)字符。(参考例4.33。)
CODE  SEGMENT
      ASSUME CS:DODE
START:
    MOV CX,0FFH
    MOV AL,00H
LOOP1:
    MOV DL,AL
    MOV AH,02H
    INT 21H
    INC AL
    LOOP LOOP1 

    MOV AH,4CH
    INT 21H
CODE ENDS
END START
  1. 编程实现:从键盘输入一个十进制数字0~9,查表求键入数字的七段代码,存入DL中,并在键入数字之前,显示提示信息“Please input a number:”。(参考例4.34。)
DATA SEGMENT
TABLE DB 40H,79H,24H,30H,19H
      DB 12H,02H,78H,00H,18H
PROMPT DB 'Please input a number:','$'
DATA ENDS  

CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA
START: 
PUSH DS
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET PROMPT
MOV AH,09H
INT 21H
MOV AH,1
INT 21H
AND AL,0FH
MOV BX,OFFSET TABLE 
XLAT
MOV DL,AL
POP DS
HLT
CODE ENDS
END START
  1. 某个学生的英语成绩已存放在BL中,如果低于60分,则显示F(Fail),如高于或等于85分,则显示G (Good),否则显示P(Pass),试编写完整的汇编语言程序来实现。(程序流程见图4.8。)
MOV AL,66
CMP AL,85
JAE GOOD
CMP AL,60
JAE PASS
JB  FAIL

GOOD:
    MOV DL,'G'
    JMP OVER   
PASS:
    MOV DL,'P'
    JMP OVER
FAIL:
    MOV DL,'F'
    JMP OVER   
OVER:
    MOV AH,02H
    INT 21H
  1. 在TABLE开始的内存宇节单元中,存放了12个带符号数,试编写完整的汇编语言程序统计其中的正数、负数和零的个数,分别存入PLUS.NEG 和ZERO单元中。(参考例3.89。
DATAS SEGMENT  
    CAT DB 0AH,0DH,"$";
    msg1 DB "positive: ","$"
    msg2 DB "negative: ","$"
    msg3 DB "zero     : ","$"
    TABLE DB 1,2,-3,4,5,0,-6,7,-8,-9,0,10
DATAS ENDS
 
STACKS SEGMENT
 STACKS ENDS
 
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV SI,OFFSET TABLE
    MOV CL,0
    MOV CH,0
    MOV BH,0
    MOV BL,0
    
AGAIN:
    CMP CL,12
     JE OVEROUTPUT
    MOV AL,[SI]
    CMP AL,0H
     JZ ZERO
     JS NEGATIVE
     JMP POSITIVE
 
ZERO:
 ADD CH,1
 JMP over
NEGATIVE:
 ADD BL,1
 JMP over
POSITIVE:
 ADD BH,1
 JMP over
    
OVER:
 ADD CL,1
 ADD SI,1
 JMP again
     
OVEROUTPUT:
 LEA DX, msg1                            
    MOV AH, 09H        
    INT 21H
    
    add BH,48
    mov DL,BH
    mov AH,2
    int 21H
    
    LEA DX, CAT                                   
    MOV AH, 09H        
    INT 21H
    
    LEA DX, msg2                          
    MOV AH, 09H        
    INT 21H
    
    add BL,48
    mov DL,bl
    mov AH,2
    int 21H
    
    LEA DX, CAT                                   
    MOV AH, 09H        
    INT 21H
    
    LEA DX, msg3                                   
    MOV AH, 09H        
    INT 21H
    
    add CH,48
    mov DL,CH
    mov AH,2
    int 21H
    
    LEA DX, CAT                                   
    MOV AH, 09H        
    INT 21H
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START
posted @ 2022-11-17 20:26  ThinkStu  阅读(594)  评论(0)    收藏  举报