资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
10-13下作业第3章(2013.9.26微机) 本次课内容第二章习题课第二章小结 (课件8) 综合设计题 (课件8-下次课提问) 大小写转换 (课件8-下次课提问) 作业讲解第3章 总线总线概述 内总线 PC/XT总线 (8088系统总线)外总线小结作业讲解5-作业1.书72页题2.162.书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:movsbmov mov mov mov mov inc inc loop hltax,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存放结果,初值为0next1:next2: done:cmp jnz inc inc loophltbyte 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,1LOOP NEXT5-作业4答案 4.将两无符号数AX、BX的较小值放CX答案:cmp jnc xchg mov hlt ax,bx next ax,bx cx,bx ;比较AX和BX ;若AXBX,转移 ;若AXCX,交换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: hlt6-作业1.描述DB的功能? 伪指令BUF DW 1, 23,?, 4 dup(5)执行后,写出BUF开始内存单元的内容 2.按照如下要求定义变量 (1) s11为11的常量 (2) s22为字符串变量OK (3) s33表示字符串OK (4) s44为用十六进制数表示的字节变量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,00H2.按照如下要求定义变量 (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 COUNTAL=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 3arraycx= 1004h程序如下 count db maxint equ number dw array db dec mov mov mov mov hlt65h, a,? 1104h maxint maxint dup(3) byte ptr array-1 bx,offset number dh,bx+2 dl,bx-2 cx,number11H-104H ?numbera=61H65Hcount8-作业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 hlt01号 mov ah,01h;设置功能调用号 ;功能调用, AL=字符的ASCII码 ;是否为小写az ;转 ;是,转换为大写字母(使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码 ;是否为大写AZ ;转 ;是,转换为大写字母(使D5=0) ;子程序返回;子程序dpchar:小写改大写cmp al,a jc next cmp al,z ja next sub al,20h retnext :子程序开始应保护用到的寄存器,返回前恢复。本题不PUSH/POP AX,因al为出口参数8-作业3讲解 3.书72页习题12(40000H4BFFFH写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)0000Hnext1: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,7EHdone:作业讲解结束第3章 总线一. 总线概述二. 内总线ISA总线 PC/XT总线 (8088系统总线)三. 外总线小结-全文完-
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号