ImageVerifierCode 换一换
格式:DOCX , 页数:56 ,大小:140.83KB ,
资源ID:18391478      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18391478.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(1632位微机原理汇编语言及接口技术钱晓捷第2版课后习题答案Word文档格式.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

1632位微机原理汇编语言及接口技术钱晓捷第2版课后习题答案Word文档格式.docx

1、 (2)、码用来指代某个事物或事物的某种状态属性,包括:二进制、八进制、十进制、十六进制。 区别:使用场合不同,详见P16.1.11 解:(1) (2)(3)1.12 解: 原码 反码 补码+37 00100101/25H 00100101/25H 00100101/25H-37 10100101/A5H 11011010/DAH 11011011/DBH1.13 解: +37 -3716位 32位00 25H00 00 00 25HFF 5BHFF FF FF 5BH1.14 解: 无符号数:70D 补码有符号数: BCD码:46D ASCII:F1.15 解: 1)、相加后若出现和大于9,

2、则将和减去10后再向高位进1 2)、若出现组间进位,则将低位加61.16 解: 详见课本16页。1.17 解: C3 40 20 001.18 解:5050H十进制值80二进制十六进制0011 0010B32H0101 0000B1.19 解: D:44H d:64H CR:0DH LF:0AH 0:30H SP:20H NUL:00H1.20 解: 国标码:36 50H 机内码:B6 B0H第二章21算术逻辑单元ALU、寄存器组和控制器;总线接口单元BIU:管理8088与系统总线的接口负责cpu对接口和外设进行访问执行单元EU:负责指令译码、执行和数据运算;8位cpu在指令译码前必须等待取指

3、令操作的完成,8088中需要译码的指令已经取到了指令队列,不需要等待取指令。而取指令是cpu最为频繁的操作,因此8088的结构和操作方式节省了大量等待时间,比8位cpu节省了时间,提高了性能。228个8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL;8个16位寄存器:累加器AX、基址寄存器BX、计数器CX、数据寄存器DX、源地址寄存器SI、目的地址寄存器DI、基址指针BP、堆栈指针SP。23标志用于反映指令执行结果或者控制指令执行形式。状态标志用于记录程序运行结果的状态信息;控制标志用于控制指令执行的形式。24例:有运算:3AH+7CH=B6H 作为无符号数运算,没有进位,CF=0;

4、 作为有符号数运算,结果超出范围,OF=1.2.58088中每个存储单元有唯一的20位地址,称为物理地址。处理器通过总线存取存储器数据时,采用这个物理地址。在用户编程过程中采用的“段地址:偏移地址”的形式称为逻辑地址。将逻辑地址中的段地址左移4位,加上偏移地址就得到物理地址。1MB最多能分成65536个逻辑段。26 代码段:存放程序的指令序列; 堆栈段:确定堆栈所在的主存储区; 数据段:存放当前运行程序的数据; 附加段:附加数据段,用于数据保存。另外串操作指令将其作为目的操作数的存放区。278088的存储空间分段管理,程序设计时采用逻辑地址。由于段地址在默认的或指定的段寄存器中,所以只需要偏移

5、地址,称为有效地址EA.操作数在主存中有以下几种寻址方式:直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址。28(1)立即数寻址 ax:1200H(2)寄存器寻址 ax:0100H(3)存储器直接寻址 ax:4C2AH(4)寄存器间接寻址 ax:3412H(5)寄存器间接寻址 ax:(6)基址变址寻址 ax:7856H(7)相对基址变址寻址 ax:65B7H29(1)cx为字寄存器,dl为字节寄存器,类型不匹配。(2)mov指令的目的操作数只能是寄存器或者主存单元,ip是指针。(3)不允许立即数到段寄存器的传送。(4)不允许段寄存器之间的直接传送。(5)数据溢出。(6)

6、sp不能用于寄存器间接寻址。(7)格式不对。应为:mov ax,bx+di(8)mov指令的操作数不能是立即数。210(1)bx得到table的偏移地址,bx=200H.(2)将立即数8送到al。(3)换码,al=12H.211(1)al=89H(2)al=12H,cf=1,zf=0,sf=0,of=1,pf=1(3)al=0AFH,cf=0,zf=0,sf=1,of=0,pf=1(4)al=0AFH,cf=1,zf=0,sf=1,of=1,pf=1(5)al=0,cf=0,zf=1,sf=0,of=0,pf=1(6)al=0FFH,cf=0,zf=0,sf=1,of=0,pf=1(7)al=

7、0,cf=0,zf=1,sf=0,of=0,pf=1212(1) add dx,bx(2) add al,bx+si(3) add word ptrbx+0B2H,cx(4) add word ptr0520H,3412H(5)add al,0A0H213运算公式:。商存储在ax,余数存储在dx。214(1)ax=1470H(2)ax=1470H,cf=0,of=0,sf=0,zf=0,pf=0(3)ax=1470H,cf=0,of=0,sf=0,zf=0,pf=0(4)ax=0,cf=0,of=0,sf=0,zf=1,pf=1(5)ax=0FFFFH,cf=0,of=0,sf=0,zf=1,

8、pf=1(6)ax=0FFFFH,cf=0,of=0,sf=1,zf=0,pf=12.15相对寻址方式、直接寻址方式、间接寻址方式。216(1)1256H(2)3280H217(1)ax=1E1EH(2)al的D0、D7位不全为0(3)cx218执行65536次。219功能:将数组中每个字元素相加,结果存储于total。220(1)lea si,string Mov dh,si Mov dl,si+5(2)mov ax word ptr buffer1 Sub ax word ptr buffer2 Mov dx word ptr buffer1+2 Sbb dx word ptr buffe

9、r2+2(3) test dx,0F000Hjz eveneven: mov ax,0(4) mov cx,4again: sar dx,1 rcr ax,1 loop again(5) mov cx,100mov si,0 mov al,0FFH add al,arraysi mov arraysi,al inc si2.21Htoasc proc Mov bl,al Mov al,ah Mov bh,10 Mul bh And ax,00FFH Add al,blHtoend: retHtoasc endp2.22计算机系统利用中断为用户提供硬件设备驱动程序。在IBM-PC系列微机中,基本

10、输入输出系统ROM-BIOS和DOS都提供了丰富的中断服务程序,称为系统功能调用。调用步骤(1)AH中设置系统功能调用号 (2)在指定寄存器中设置入口参数 (3)使用中断调用指令执行功能调用 (4)根据出口参数分析调用情况223 And al,0FH Add al,90H Daa Adc al,40H Mov ah,02H Mov dl,al Int 21H Ret2.24Numout proc Xor ah,ah Aam Add ax,3030H Mov dl,ah Int 31HNumout endp2.25Msgkey db”input number 0-9”,”$”Msgwrg db”

11、error”,”$” Mov ah,09H Mov dx,offset msgkeyAgain: mov ah,01H Cmp al,30H Jb disp Cmp al,39H Ja disp Jmp doneDisp: mov dx,offset msgwrg Jmp againDone: mov ah,02H第3章 3.1 解: 汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数,可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序3.2 解: (1)完整的汇编语言源程序由段组成 (2)一个汇编语言源程

12、序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列 (3)需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点 (4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内 (5)通常,程序还需要一个堆栈段3.3 解:存储模式特 点TINYCOM类型程序,只有一个小于64KB的逻辑段(MASM 6.x支持)SMALL小应用程序,只有一个代码段和一个数据段(含堆栈段),每段不大于64KBCOMPACT代码少、数据多的程序,只有一个代码段,但有多个数据段MEDIUM代码多、数据少的程序,可有多个代码段,只有一个数据段LARG

13、E大应用程序,可有多个代码段和多个数据段(静态数据小于64KB)HUGE更大应用程序,可有多个代码段和多个数据段(对静态数据没有限制)FLAT32位应用程序,运行在32位80x86CPU和Windows 9x或NT环境3.4 解: 开始位置:用标号指明 返回DOS:利用DOS功能调用的4CH子功能来实现 汇编停止:执行到一条END伪指令时,停止汇编3.5 解: 段定位、段组合和段类型。3.6 解: stack segment stack db 1024(0) stack ends data segment string db Hello,Assembly!,0dH,0aH,$ data end

14、s code segment code assume cs:code,ds:data,ss:stack start: mov dx,offset string mov ah,9 int 21h code ends end start3.7 解:(1). EXE程序 程序可以有多个代码段和多个数据段,程序长度可以超过64KB 通常生成EXE结构的可执行程序(2). COM程序 只有一个逻辑段,程序长度不超过64KB 需要满足一定条件才能生成COM结构的可执行程序(MASM 6.x需要采用TINY模式)3.8 解: 符号定义伪指令有“等价EQU”和“等号”: 符号名 EQU 数值表达式 符号名 E

15、QU 符号名 数值表达式 EQU用于数值等价时不能重复定义符号名,但“”允许有重复赋值。例如: X= 7 ;等效于:X equ 7 X= X+5 ;“X EQU X+5”是错误的3.9 解: (1) al=67h (2) ax=133h,dx=4h (3) ax=0230h (4) al=41h (4) ax=7654h3.10 解: (1)41h42h43h1010h45h46h-1?4?00h0fbh0ffh3.11 解:.data my1b db Personal Computer my2b db 20 my3b db 14h my4b db 00010100b my5w dw 20 d

16、up(?) my6c = 100 my7c = 3.12 解: 利用定位伪指令控制,如org,even,align3.13 解: 包括逻辑地址和类型两种属性。3.14 解: ;数据段 org 100h varw dw 1234h , 5678h varb db 3 , 4 vard dd 12345678h buff dd 10 dup(? mess db Hello代码段 mov ax , offset varb + offset mess mov ax , type buff + type mess + type vard mov ax , sizeof varw+ sizeof buff

17、+ sizeof mess mov ax , lengthof varw+ lengthof vard3.15 解: (1) 1000超过一个字节所能表达的最大整数 (2)SI应为偶数 (3)两个内存单元不能直接运算 (4)应改为al+1 (5)条件转移指令后面应接标号,而不是变量3.16 解: mov ah,1 ;只允许输入小写字母 int 21h sub al,20h ;转换为大写字母 mov dl,al mov ah,2 int 21h ;显示3.17 解: mov bx,offset LEDtable mov al,lednum xlat3.18 解: mov ax, bufX cmp

18、 ax, bufY jae done mov ax, bufYdone: mov bufZ, ax3.19 解: .model small .stack .databufX dw -7signX db ? .code .startup cmp bufX,0 ;test bufX,80h jl next ;jnz next mov signX,0 jmp donenext: mov signX,-1 .exit 0 end3.20 解: mov dl,2 mov ax,bufX cmp ax,bufY je next1 dec dlnext1: cmp ax,bufZ je next2next2

19、:3.21 解: ; mov al,number mov bx,0 ;BX记录为1的位数restart: cmp al,0 ;AL0结束 jz done shr al,1 ;最低位右移进入CF jc next ;为1,转移 inc bx ;不为1,继续 jmp again push ax push bx shl bx,1 ;位数乘以2(偏移地址要用2个字节单元) jmp addrsbx ;间接转移:IPtableBX以下是各个处理程序段fun0: mov dl,0 jmp dispfun1:1fun2:2fun3:3fun4:4fun5:5fun6:6fun7:7disp: mov ah,2

20、;显示一个字符 pop bx pop ax jmp restart 3.22 编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。;wjxt322.asmb_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数sum db ?预留结果单元 xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 add al, b_datasi ;累加 i

21、nc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果3.23 求主存0040h:0开始的一个64KB物理段中共有多少个空格?; wjxt323.asmstart: mov ax,0040h ;送段地址 mov ds, ax mov si, 0 ;偏移地址 mov cx, si ;计数(循环次数) xor ax, ax ;空格计数器清零 cmp byte ptr si, 20h ;与空格的ASCII码比较 jne next ;不是空格,转 inc ax ;是空格,空格数加1修改地址指针cxcx1,如cx0 退出循环 end start3.2

22、4 编写计算100个16位正整数之和的程序。如果和不超过16位字的范围(65535),则保存其和到wordsum,如超过则显示overflow。答:count equ 100parray dw count dup(?) ;假设有100个数据wordsum dw 0msg db overflow,$ mov cx,count mov bx,offset parray add ax,bx jnc next mov dx,offset msg mov ah,9显示溢出信息 jmp done ;然后,跳出循环体 add bx,2 mov wordsum,ax 3.25 编程把个16位无符号二进制数转换成为用8421BCD码表示的5位十进制数。转换算法可以是:用二进制数除以10000,商为“万位”,再用余数除以1000,得到“千位”;依次用余数除以l00、10和l,得到“百位”、“十位”和“个位”。wjxt325.asm .model small .stack 256 .data array dw ?源字数据 dbcd db 5 dup(?五位bcd结果,高对高低对低 .code .startup mov dx, array ;取源数据(余数) mov bx, 10000 ;除数 mov cx, 10 ;除数系数 mov si, 4 ;目的数据高位位移量 mov ax, dx ;dx.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1