手机版

10-13下作业第3章(2013.9.26微机)

发布时间:2021-06-05   来源:未知    
字号:

本次课内容

第二章习题课第二章小结 (课件8) 综合设计题 (课件8-下次课提问) 大小写转换 (课件8-下次课提问) 作业讲解

第3章 总线总线概述 内总线– PC/XT总线 (8088系统总线)

外总线

小结

作业讲解

5-作业

1.书72页题2.16

2.书72页题2.183.将DX.BX中32位数值右移四位 4.将两无符号数AX、BX的较小值放CX 5. 编程实现若寄存器 DX 高 4 位 =0 ,使 AX=0 ;否则 使AX=-1 准备下次课提问的题

5-作业1答案 1.书72页题2.16

? 40000H改为变量SSSS ? 查找数据块中‘a’个数放bx、cx(Loop冲突)

方法1:循环程序

方法2:串操作类指令

(内存40000H开始16KB单元数据块传送至首地址A0000H存储区域) mov cx,4000h ;设置循环次数16KB=4000H ;设置循环初值DS:[SI]指向数据段源缓冲区开始40000H=4000H(DS)×16+0(SI)

mov ax,4000h mov ds,ax mov si,0;设置循环初值ES:[DI]指向附加段目的缓冲区开始A0000H=A000H(ES)×16+0(DI)

again:movsb

mov mov mov mov mov inc inc loop hlt

ax,0a000h es,ax di,0 al,[si] es:[di],al si di again

;循环体:实现数据传送 ;每次传送一个字节 ; SI和DI指向下一个单元

CLD REP MOVSB;重复执行MOVSB指 令CX次

;循环条件判定-循环次数减1,不为0转移(循环)

5-作业2答案2.书72页题2.18 (统计内存40000H开始的16KB单元中为字符’A’个数,结果存放在DX 中)

答案:mov cx,4000H mov si,0 mov ax,4000H mov ds,ax mov dx,0 ;设置循环次数16KB=4000H ;设置循环初值:SI 指向数据段源缓冲区开始物理地址40000H= 段基地址(DS)4000H*16+偏移地址(SI)0000H

;dx存放结果,初值为0

next1:

next2: done:

cmp jnz inc inc loophlt

byte ptr [si],‘A’ ;循环体每次比较一个字节‘A’ next2 dx si ;SI指向下一个单元 next1 ;循环条件判定:循环次数减1,不为0转移(循环)

5-作业3答案 3.将DX.BX中32位数值右移四位

答案:MOV NEXT: SHR RCR HLT CX,4 DX,1 BX,1

LOOP NEXT

5-作业4答案 4.将两无符号数AX、BX的较小值放CX

答案:cmp jnc xchg mov hlt ax,bx next ax,bx cx,bx ;比较AX和BX ;若AX≥BX,转移 ;若AX<CX,交换

next:

判断A≥ B 不低于(大于等于) 有符号数 JNL / JGE指令 无符号数 JNC / JNB / JAE指令

5-作业5答案 5.编程实现若寄存器DX高4位=0,使AX=0;否则使AX=-1

答案1:

test dx,0f000h ;测试dx高4位=0 jz next ;相等,转移 mov ax,-1 ;不相等,令AX=-1 jmp done ;无条件转移指令 next: mov ax,0 ;相等的处理:令AX=0 done: hlt -------------------------------------------------答案2: mov ax,0 test dx,0f000h jz next ;条件满足(DX高4位全为0),转移 mov ax,-1 ;条件不满足 next: hlt

6-作业1.描述DB的功能? 伪指令BUF DW 1, ‘23’,?, 4 dup(5)执行后,写出BUF开始内存单元的内容 2.按照如下要求定义变量 (1) s11为11的常量 (2) s22为字符串变量OK (3) s33表示字符串OK (4) s4

4为用十六进制数表示的字节变量44 (5) s55为55个未赋值的字变量

3.设COUNT变量在数据段的偏移地址为0010H 程序如下WNUM EQU COUNT DW MOV ADD MOV LEA MOV MOV 01H 20H SI,WNUM SI, OFFSET COUNT AL,[SI] BX,COUNT BX,[BX] CX,OFFSET COUNT

问:程序执行后AL=? BX=? CX=? 4.将题3写出完整的汇编语言源程序(简化段定义格式) △预习汇编语言程序开发实验 (重点掌握CodeView调试方法) △准备下次课提问的题

6-作业

1.描述DB的功能? 伪指令BUF DW 1, ‘23’,?, 4 dup(5)执行后,写出BUF开始内存单元的内容 [答案:01H,00H,33H,32H,?,?,05H,00H,05H,00H, 05H,00H,05H,00H]

2.按照如下要求定义变量 (1) s11为11的常量 [答案:S11 EQU 11] (2) s22为字符串变量OK [答案:S22 DB ‘OK ’] (2) s33表示字符串OK [答案:S33 EQU ‘OK’] (3) s44为用十六进制数表示的字节变量44 [答案:S44 DB 44H]

(4) s55为55个未赋值的字变量[答案:S55 DW 55DUP(?)]

6-作业3讲解

AL=? BX=? CX=?程序如下 COUNT DW MOV MOV LEA MOV 20H SI,1 AL,[SI+COUNT] BX,COUNT CX,OFFSET COUNT

AL=00H BX=CX= COUNT变量在数据段的偏移地址

存储单元 00H 20HCOUNT

设COUNT变量在数据段的偏移地址为0010H 程序如下 WNUM EQU 01H COUNT DW 20H MOV SI, WNUM ADD SI, OFFSET COUNT MOV AL,[SI] LEA BX,COUNT MOV BX,[BX] MOV CX,OFFSET COUNT AL=00H BX=0020H CX=0010H =COUNT变量在数据段的偏移地址

6-作业4讲解 将上题写出完整的汇编语言源程序(简化段定义格式) .model small .data ; 定义数据段 EQU 01H DW 20H .code ; 定义代码段 mov ax,@data ;程序起始点,建立DS mov ds,ax MOV SI, WNUM ADD SI, OFFSET COUNT MOV AL,[SI] LEA BX,COUNT MOV BX,[BX] MOV CX,OFFSET COUNT .exit 0 ; 程序正常执行结束 end start ; 汇编结束

数据 定义

WNUM COUNTstart:

程 序

8-作业

1.程序如下count maxint number array db equ dw db dec mov mov mov mov hlt 65h, 'a',? 1104h maxint maxint dup(3) byte ptr array-1 bx,offset number dh,[bx+2] dl,[bx-2] cx,number

问:程序执行后dx=?cx=?2. 编程实现将从键盘输入的一个小写字母用大写字母显示出来 3. 书72页习题12 复习第2章内容,预习第3章 总线

8-作业1讲解 dx=0361h 存储单元 3 3array

cx= 1004h程序如下 count db maxint equ number dw array db dec mov mov mov mov hlt

65h, 'a',? 1104h maxint maxint dup(3) byte ptr array-1 bx,offset number dh,[bx+2] dl,[bx-2] cx,number

11H-104H ?number

‘a’=61H65Hcount

8-作业2讲解 编程实现将从键盘输入的一个小写字母用大写字母显示出来方法1:分支程序 方法2:子程序设计

字母大小写

;方法1程序

int 21h cmp al,‘a’ jc next cmp al,‘z‘ ja next sub al,20h next: mov ah,02h mov dl,al 02号 int 21h hlt

01号 mov ah,01h

;设置功能调用号 ;功能调用, AL=字符的ASCII码 ;是否为小写a~z ;<转

;>转 ;是,转换为大写字母(使D5=0) ;设置功能调用号 ;设置入口参数DL=欲显示

字符的ASCII码 ;功能调用

8-作业2讲解(方法2:子程序设计);主程序mov int call mov mov int hlt ah,01h 21h dpchar ah,02h dl,al 21h

?大写字母用小写字母显示

;设置功能调用号 ;功能调用, AL=字符的ASCII码 ; 调用子程序 ;设置功能调用号 ;设置入口参数DL=欲显示字符的ASCII码 ;功能调用 入口参数:寄存器al=需转换字符的ASCII码 出口参数:寄存器al=大小写转换后字符的ASCII码 ;是否为大写A~Z ;<转 ;>转 ;是,转换为大写字母(使D5=0) ;子程序返回

;子程序dpchar:

小写改大写cmp al,‘a' jc next cmp al,‘z' ja next sub al,20h ret

next :

子程序开始应保护用到的寄存器,返回前恢复。本题不PUSH/POP AX,因al为出口参数

8-作业3讲解 3.书72页习题12(40000H~4BFFFH写55H,写入读出比较,全对AL置7EH,有错AL置81H)

答案:

mov cx,0C000H mov si,0000H mov mov mov inc loop mov mov mov mov cmp jnz inc loop mov hlt

;设置循环次数4BFFFH- 40000H+1=0C000H ;设置循环初值:SI 指向数据段源缓冲区开始 物理地址40000H= 段基地址(DS)4000H*16+偏移地址(SI)0000H

next1:

next2:

ax,4000H ds,ax byte ptr [si],55H ;循环体每次写入一个字节55h si ;SI指向下一个单元 next1 ;循环条件判定:循环次数减1,不为0转移(循环) cx,0C000H ;设置循环次数 si,0000H ;SI 指向数据段源缓冲区开始 al,81H ;设有错 ah,[si] ;循环体每次比较一个字节55h ah,55h done si ;SI指向下一个单元 next2 al,7EH

done:

作业讲解结束

第3章 总线一. 总线概述

二. 内总线ISA总线 PC/XT总线 (8088系统总线)

三. 外总线小结

10-13下作业第3章(2013.9.26微机).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)