Bài tập thực hành Assembler 6

Bài 6.5. Viết CT nhập vào 1 ký tự hoa. In ra ký tự thường

Ví dụ:

Moi ban nhap 1 ky tu: B

Ky tu thường: b

 

===================== Giải 6.5 ========================

 

.MODEL small

.STACK 100h

.DATA

Msg1 DB 13,10,"Moi ban nhap 1 ki tu: $"

Msg2 DB 13,10,"Ki tu thuong : $"

KTT DB ?

.CODE

; lay dia chi data dua vao DS

MOV AX,@data

MOV DS,AX

 

; xuat Msg1

MOV AH,9

MOV DX,offset Msg1

INT 21h

 

 

docx8 trang | Chia sẻ: maiphuongdc | Lượt xem: 1755 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Bài tập thực hành Assembler 6, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Bài tập thực hành Assembler 6 Bài 6.1. Viết CT nhập vào 1 ký tự, xuất ra ký tự đó Ví dụ: Moi ban nhap 1 ky tu: b Ky tu vừa nhập: b Bài 6.2. Viết chương trình xuất ra màn hình một số dòng. Ví dụ: De chay duoc 1 CT hop ngu ban can thuc hien cac buoc sau: Dich file ASM thanh file OBJ Lien ket file OBJ thanh file EXE Chay file EXE Bài 6.3. Viết CT nhập vào 1 ký tự, xuất ra ký tự liền trước và liền sau. Ví dụ: Moi ban nhap 1 ky tu: b Ky tu lien truoc: a Ky tu lien sau: c Bài 6.4. Viết CT nhập vào 1 ký tự thường. In ra ký tự Hoa Ví dụ: Moi ban nhap 1 ky tu: b Ky tu Hoa: B Bài 6.5. Viết CT nhập vào 1 ký tự hoa. In ra ký tự thường Ví dụ: Moi ban nhap 1 ky tu: B Ky tu thường: b Bài 6.6. Viết chương trình nhập vào 2 số nguyên dương x1, x2 (1 £ x2 < x1 < 9). Xuất ra kết quả các phép tính: x1-1, x1 +2, x1+x2, x1-x2 Ví dụ: x1 = 5 x2 = 3 x1 – 1 = 4 x1 + 1 = 6 x1 + x2 = 8 x1 – x2 = 7 Bài 6.1. Viết CT nhập vào 1 ký tự, xuất ra ký tự đó Ví dụ: Moi ban nhap 1 ky tu: b Ky tu vừa nhập: b ===================== Giải 6.1: ======================== .model small .stack 100h .data Msg1 DB 9,10,13,"- Moi ban nhap 1 ky tu:$" Msg2 DB 9,10,13,"- Ky tu vua nhap:$"  b DB ? .code mov AX,@data mov DS,AX mov DX,OFFSET Msg1 mov AH, 9 int 21h mov AH,1 int 21h mov b,AL  mov DX,OFFSET Msg2 mov AH, 9 int 21h mov DL,b mov AH,2 int 21h mov AH,4Ch int 21h end  ===================== END 6.1 ======================== Bài 6.2. Viết chương trình xuất ra màn hình một số dòng. Ví dụ: De chay duoc 1 CT hop ngu ban can thuc hien cac buoc sau: Dich file ASM thanh file OBJ Lien ket file OBJ thanh file EXE Chay file EXE ===================== Giải 6.2: ======================== .model small .stack 100h .data Msg DB 10,13, "De chay duoc 1 CT hop ngu ban can thuc hien cac buoc sau:" DB 10,13,9,"- Dich file ASM thanh file OBJ." DB 10,13,9,"- Lien ket file OBJ thanh file EXE." DB 10,13,9,"- Chay file EXE.$" .code mov AX,@data mov DS,AX mov DX,offset Msg mov AH,9 int 21h mov AH,4Ch int 21h end  ===================== END 6.2 ======================== Bài 6.3. Viết CT nhập vào 1 ký tự, xuất ra ký tự liền trước và liền sau. Ví dụ: Moi ban nhap 1 ky tu: b Ky tu lien truoc: a Ky tu lien sau: c ===================== Giải 6.3 ======================== .MODEL SMALL .STACK 100H .DATA Msg1 DB "Nhap vao ky tu: $" Msg2 DB "Ky tu lien truoc la: $" Msg3 DB "Ky tu lien sau la: $" XuongDong DB 10,13, "$" .CODE MOV AX, @DATA MOV DS, AX MOV DX, offset Msg1 MOV AH, 9 INT 21h ;nhap 1 ky tu MOV AH, 1 INT 21h mov BH,AL ; luu ky tu vua nhap vao BH mov DX, offset XuongDong mov AH, 9 int 21h ;xuat ky tu lien truoc mov DX, offset Msg2 mov AH, 9 int 21h mov AH,BH DEC AH mov DL, AH ; ky tu xuat dc luu trong DL mov AH,2 int 21h  mov DX, offset XuongDong mov AH, 9 int 21h ;xuat ky tu lien sau mov DX, offset Msg3 mov AH, 9 int 21h mov AH,BH INC AH mov DL, AH ; ky tu xuat dc luu trong DL mov AH,2 int 21h  mov DX, offset XuongDong mov AH, 9 int 21h ;ket thuc chuong trinh mov AH, 4Ch ; thoat chuong trinh int 21h  end  ===================== END 6.3 ======================== Bài 6.4. Viết CT nhập vào 1 ký tự thường. In ra ký tự Hoa Ví dụ: Moi ban nhap 1 ky tu: b Ky tu Hoa: B ===================== GIẢI 6.4 ======================== .Stack 100 .Data Msg1 db 'moi ban nhap 1 ky tu: $' Msg2 db 'Ky tu Hoa: $' .Code Main Proc mov ax, @Data mov ds, ax mov ah, 9 lea dx, TB1 int 21h mov ah, 1 int 21h mov bl, al mov ah, 2 mov dl, 10 int 21h mov dl, 13 int 21h mov ah, 9 lea dx, TB2 int 21h mov ah, 2 mov dl, bl sub dl, 20h int 21h mov ah,4Ch int 21h Main EndP End Main  ===================== END 6.4 ======================== Bài 6.5. Viết CT nhập vào 1 ký tự hoa. In ra ký tự thường Ví dụ: Moi ban nhap 1 ky tu: B Ky tu thường: b ===================== Giải 6.5 ======================== .MODEL small .STACK 100h .DATA Msg1 DB 13,10,"Moi ban nhap 1 ki tu: $" Msg2 DB 13,10,"Ki tu thuong : $" KTT DB ? .CODE ; lay dia chi data dua vao DS MOV AX,@data MOV DS,AX ; xuat Msg1 MOV AH,9 MOV DX,offset Msg1 INT 21h ; nhap 1 ki tu tu ban phim va luu vao AL MOV AH,1 INT 21h ; chuyen thanh ki tu thuong va dua vao KTT ADD AL,20h ; hoac ADD AL,32 MOV KTT,AL ; xuat Msg2 va KTT MOV AH,9 MOV DX,offset Msg2 INT 21h MOV AH,2 MOV DL,KTT INT 21h ; ket thuc chuong trinh MOV AH,4Ch INT 21h END ===================== END 6.5 ======================== Bài 6.6. Viết chương trình nhập vào 2 số nguyên dương x1, x2 (1 £ x2 < x1 < 9). Xuất ra kết quả các phép tính: x1-1, x1 +2, x1+x2, x1-x2 Ví dụ: x1 = 5 x2 = 3 x1 – 1 = 4 x1 + 1 = 6 x1 + x2 = 8 x1 – x2 = 7 ===================== Giải 6.6 ======================== .MODEL small .STACK 100h .DATA Msg1 DB 13,10,"x1 = $" Msg2 DB 13,10,"x2 = $" KetQua1 DB 13,10,"x1 - 1 = $" KetQua2 DB 13,10,"x1 + 1 = $" KetQua3 DB 13,10,"x1 + x2= $" KetQua4 DB 13,10,"x1 - x2= $" So1 DB ? So2 DB ? .CODE ;Lay dia chi data dua vao DS MOV AX,@data MOV DS,AX ; Xuat Msg1 & nhap So1 tu ban phim MOV AH,9 MOV DX,offset Msg1 INT 21h MOV AH,1 INT 21h MOV So1,AL ; Xuat Msg2 & nhap So2 tu ban phim MOV AH,9 MOV DX,offset Msg2 INT 21h MOV AH,1 INT 21h MOV So2,AL ; Chuyen ki tu thanh so SUB So1,48 SUB So2,48 ; Xuat KetQua1 va ket qua phep tinh So1 - 1 MOV AH,9 MOV DX,offset KetQua1 INT 21h MOV BH,So1 ; Dua So1 vao thanh ghi BH DEC BH ; Thuc hien phep tinh So1 - 1 ADD BH,48 ; Chuyen ket qua tu So sang Ky tu MOV AH,2 MOV DL,BH INT 21h ; Xuat KetQua2 va ket qua phep tinh So2 + 1 MOV AH,9 MOV DX,offset KetQua2 INT 21h MOV BH,So2 ; Dua So2 vao thanh ghi BH INC BH ; Thuc hien phep tinh So2 + 1 ADD BH,48 ; Chuyen ket qua tu So sang Ky tu MOV AH,2 MOV DL,BH INT 21h ; Xuat KetQua3 va ket qua phep tinh So1 + So2 MOV AH,9 MOV DX,offset KetQua3 INT 21h MOV BH,So1 ; Dua So1 vao BH ADD BH,So2 ; Thuc hien phep tinh So1 + So2 ADD BH,48 ; Chuyen ket qua tu So sang Ky tu MOV AH,2 MOV DL,BH INT 21h ; Xuat KetQua4 va ket qua phep tinh So1 - So2 MOV AH,9 MOV DX,offset KetQua4 INT 21h MOV BH,So1 ; Dua So1 vao BH SUB BH,So2 ; Thuc hien phep tinh So1 - So2 ADD BH,48 ; Chuyen ket qua tu So sang Ky tu MOV AH,2 MOV DL,BH INT 21h ; ket thuc chuong trinh MOV AH,4Ch INT 21h END ===================== END 6.6 ========================

Các file đính kèm theo tài liệu này:

  • docxbai_tap_thuc_hanh_assembler_6_.docx
Tài liệu liên quan