IBM-PC汇编语言程序设计第二版课后习题答案清华大学出版社着答案3-8章 下载本文

(8)3 13。分别汇编成为: MOV AX,0AH MOV BL,0AH MOV CL,1

14。(1)(AX)=1 (2)(AX)=2 (3)(CX)=14H (4)(DX)=32H (5)(CX)=1]

15。(1)操作符错误 改为: DATA_SEG SEGMENT (2)缺少段名 在前面加个段名

(3)引用应该从;开始 把那个“/”改成“;” (4)结构混乱 改为: MAIN_PROC PROC FAR 。。。。 MAIN_PROC ENDP END

16。程序框架如下:

DATA_SEG SEGMENT ;定義數據段

ORG 0E000H ;讓下一字節地址為0E000H

FIRST_TYPE EQU THIS WORD ;建立一個與下一存儲單元有相同段地址和偏移地址的操作數

DATA_GROUP DB 100 DUP(?) ;給DATA_GROUP 分配100個字節的空間

DATA_SEG ENDS ;數據段結束

STACK_SEG SEGMENT ;定義堆棧段 ALIGN 16 ;讓下一字節從小段首地址開始 STACK DB 100 DUP (?) ;為堆棧分配空間

STACK_SEG ENDS ; CODE_SEG SEGMENT

ASSUME CS:CODE_SEG ,DS:DATA_SEG ,SS:STACK_SEG

ORG 1000H ;讓下條指令的第一個字節從1000H開始 START : MOV AX,DATA_SEG

MOV DS,AX MOV AX,STACK_SEG

MOV SS,AX ....... CODE_SEG ENDS

END START ;結束~ 17。程序如下:

D_SEG SEGMENT ;数据段定义

AUGEND DD 99251 D_SEG ENDS

E_SEG SEGMENT ;附加段定义 ADDEND DD -15926 E_SEG ENDS

C_SEG SEGMENT ;代码段定义

ASSUME CS:C_SEG , START: MOV AX,D_SEG

DS:D_SEG,ES:E_SEG 第五章答案

5.1 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来 .model small .stack 100H .code main proc far Start: push dx mov ax,0 push ax mov ah,01H int 21H cmp al,61H jl lop1 cmp al,7BH jge lop1 sub al,20H mov dl,al lop1:mov ah,2 int 21H ret End start

5.2 编写一个程序,从键盘接受一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符. .model small .386 .code MAIN PROC FAR start: push ds sub ax,ax push ax input: mov ah,7H

int 21H cmpe: cmp al,20H JE exit cmp al,61H JL input cmp al,7AH JG input print: sub al,01H mov dl,al mov ah,02H int 21H add al,01H mov dl,al mov ah,02H int 21H add al,01H mov dl,al mov ah,02H int 21H ;输出换行回车 mov dl,0AH mov ah,02H int 21H jmp input exit : ret MAIN ENDP END start

5.3 将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL、DL中。 .model small .data x DB 4 dup(?) .stack 100H